Quicksilver with the Mail Plugin can do this. Unfortunately Quicksilver settings seem to have changed significantly from version to version so it can be quite difficult to figure out for the first time. This site is currently up to date with the QS preferences:
It solves a slightly different issue, but provides the info you need to navigate QS's preference panes if you need to.
The basic process to send a message is to open Quicksilver (with Cmd-SPC or whatever hotkey you've chosen), press ".", type your message, tab-tab, then choose your recipient.
The link above explains how to set a trigger, so you can open the compose window from a single hotkey.
A word of warning - my experience with QS is that it is fantastic when you get it working, but it takes a lot of effort to initially get it working.