I just went through the process of migrating all of my sites to dreamhost. I've had some issues with a mysql server malfunctioning, but dreamhost has moved me to another server and not a glitch since.
From prior experience, I was familiar with migrating web sites. Backing up the files and databases, and restoring them. However, I haven't had any experience migrating email.
Most of my email addresses were just aliases, so I manually went through with my old host and jotted them all down. At least in the dreamhost admin panel you can bulk edit, so I was able to recreate them here no problem.
One of my users had a full-fledged pop/imap/webmail account - and it was with this one user that I struggled. I was able to set up the new account over here, but how do I transfer all the messages she was storing? Well, along came the dreamhost wiki with the answer. Dreamhost gives you shell access, so you can do a lot of fancy things. I updated the wiki page with the exact steps I used for pop2imap, but even before I got there I was amazed that this was at all possible!
Just thought I'd let you all know - pretty happy with dreamhost now!