Basically something that allows you to select an image and email it to
someone like an eCard.
You could address that aspect of your question with built-in functionality and one add-on.
Create a channel for storing your library of "eCard Designs" that a user can choose from.
Then another channel for "User Created eCards" and allow users to publish into this channel from the front end of your site using Channel Form (formerly SafeCracker). You'd be able to collect and store all the parameters of the eCard (to, from, message, design, etc) as custom fields.
Then in conjunction with this you can use the Postmaster add-on to template, dynamically fill, and deliver the email when the user creates their eCard entry.
Since this gives you the freedom of the Channel module, and since Postmaster is made to be adaptable, I think this approach would probably allow for the greatest flexibility.