Setting up everything yourself is a pain in the butt. IMHO, it's not worth your time. I'd look into a turn-key solution instead.
Zimbra has already been mentioned, but it is _very_ heavy on the resources and more or less requires a dedicated Linux box (or VPS).
I would suggest you take a look at Atmail. They're a new comer, but it is rather promising. It is using all 'the usual suspects' but without you having to configure them all by hand.
That said, setting up your own email server is great way to learn about your system and email in general, but you should be ready to spend some serious time on configuring everything.