Dan's method is right, you need to include the css in the tags themselves, not in a stylesheet, and not in the header. Alternatively you can use old-skool font tags, but they don't set things like text sizes as consistently across browsers.
A bit of a pain in the butt and makes the code quite heavy. Start of with the simplest tables-based layout you can achieve, then style up the text from there, putting your css markup in the
TD tags.
My own method is to start by carving up the layout in Fireworks to get a nice nested table layout, then go back in and do the text styling by hand. I think Adobe Image ready does the same thing but I've not used it in a few years.
If you've got the layout in a psd file, you could try PSD2HTML.com, they are extremely good. Click 'order now' and choose the email tab, there's a good explanation of what they do. Once you've got a template done by them you should be able to do your own quite easily afterwards.
Other thing to remember is that Outlook 2007 does a lovely job of screwing up any design that uses background images.
We've got a testing suite with all the major email clients and accounts with most of the webmail services. If you're almost there and want me to have a quick look PM me a link.