For almost a decade I've been hosting openmymind.net and using that domain for my main email address, as well as those of friends and family. Hosting on a little VPS is something every web developer should do. But the one annoying part of that was always hosting my own email. Its annoying because email is important and because email is hard to move to a new service.
Since I've registered openmymind.net, its been hosted with 4 different companies. When I first started it was a shared windows account. I then switched to MediaTemple but was unhappy with the performance. I hosted at WiredTree for a bit, but it was too expensive - I didn't need all the management crap (great host if you do want more of a managed service though!). Finally, a couple months ago, I settled on Linode and couldn't be happier.
The problem though is that every time I switched hosting companies, I had to move all email accounts. Unlike migrating websites and databases, email required me to get in touch with everyone and help them change their email client settings (at the very least passwords get reset). I also had to deal with slow dns switchover and having some emails show up in the old place. Its a real pain.
So this time around I decided to split my email hosting from my web hosting. The solution people recommended most was google's free Google Apps Standard Edition. This essential lets you use Gmail with your own domain name. That doesn't mean you have to use the Gmail interface (but you can, and probably should!), since you can always setup POP3, IMAP or forwarding from GMail.
The process is really easy. You pretty much register a free account, define your users (up to 50 on the free Standard Edition) and then setup a bunch of MX records for your DNS. If you are using Linode they have a free DNS manager that I suggest you take advantage of. I now get faster mail delivery, better spam filtering, a lot of storage space, and easier management.