How can I tap once on my home screen and start composing an email to a specified contact? I'm looking for a widget, shortcut, etc. that will let me tap it once and the next screen I see if the compose email screen for someone.

For example, if I have a contact Joe whose email is joe@example.com, I could click one button (or contact picture, or label, etc.) on my home screen and an email to joe@example.com would be started.

If I use the contact widget, I click on Joe and then get a menu for email or call, etc.   

Is there a one-click solution to start composing an email to a contact from the home screen?
It may depend on what phone you have but for HTC phones you can add a "Shortcut" of a person and have the shortcut be the whole contact card or just start an e-mail message (or any other contract related actions)

Long press on the home screen to bring up the "Add to Home" menu, select "Shortcut" then select "Person".  Here you can select the person you want to be able to contact and it will provide you a list of actions to perform on that contact.  Select "Send mail".  When you click on the new shortcut it may prompt you to choose an e-mail client but you can either choose a default or not and be able to choose which client you use each time.

Edit - I just tried this on my Hero with a AOSP custom ROM and the only option I could find on the "Shortcut" menu was to add a contact.  This would provide you with a two-click method - once to select the contact and a second click to select the "Email" action.

Edit2 - I just found Mail Widget Free in the Android Market, which looks like exactly what you wanted.  You can add widgets either 2x1 or 3x1 which will have the contact's photo and e-mail address.  One click and your default e-mail app will open ready to send a message to that contact.  There is a "Pro" version which allows a 1x1 widget.

Note: I am not the developer of this app.

Edit3 - I also just found that HTC's have a "People Widget".  With this widget you can select certain people or groups to be displayed and each one can have a different default function when clicked.  One of those functions is to send and e-mail.  To do this just add the "People Widget" (it should be there by default in your widget list) then select the group (or create one) that you want to be in the widget and then once the widget is up - click on the contact you want to email.  This will bring up a selection of functions to apply to that contact and you can then select e-mail and you'll see an envelope icon on that contact in the widget. I can't believe I missed this one before :). I hope either this one or the previous edit can answer your question.