I've moved WordPress installs several times - from dev to QA to prod, from one host to another, etc. This is what I've done:
1) Back up the database using export in phpmyadmin.
2) Download ALL the files from your site via FTP. All of my installs have always been in the root of a site, but you could install in a "folder" - in any case, download everything.
3) Upload everything to the new location (new host).
4) Restore the database to the new host (using phpmyadmin).
5) Reset any permissions on folders or files that are needed (like .htaccess or an uploadable folder).
Note, if the domain name is changing, I've always found it easiest to search and replace the domain name in the sql data file before restoring it. For example, if your site is www.mywordpresssite, and you have created mywordpresssite.dreamhosters.com - you'll need to do the search and replace. Then, after you adjust the nameservers to point from old host to dreamhost, and your original domain name resolves to dreamhost, you'll have to search and replace again.
Hopefully I didn't overexplain (or under).