I'm in the process of doing this now for multiple sites, and I think I have a system down that works well.
On old server
- Back up. Zip up your entire blog directory and put it somewhere, just in case.
- Export all posts as a double backup.
- Export the dB to your local computer
- Copy your entire wp-content directory down to your local computer.
On new server
- Upload Wordpress to new server. Make sure to follow same directory names and structure as the old server. It will make your life much easier. Trust me on this one.
- Create new database.
- Delete wp-content directory that comes with Wordpress and replace with yours from existing blog. 8. Edit wp-config-sample.php file with new dB details, and rename to wp-config.php
- Import dB from old server into the new server.
- Point domain to new server.
- Wait. I am doing this within the same ISP, just consolidating some accounts. So the change for me is instantaneous as I don't even need to edit name servers. It may take 20 minutes to 2 days for your domain to point to the new server. In the meantime it should still load the old blog.