I wish I could find the guy who wrote this to give him credit but I can't. But here is a way to migrate a WP site to a different host, testing first without a leap in the dark:
* Use phpMyAdmin both ends.
* Export database from old site. Import to the new site database. Pay attention to database names.
* Change wp-config.php in old site to point to database on new site.
* Check old site runs using database at new site (make new db remote access)
* Download WordPress installation from old site (includes uploads, themes, plugins - and config.php)
* Unpack WordPress installation to new site
* Check wp-config.php on new site has new database details
* Change the nameservers to point to the new site
* After propagation, change db to local if desire
----
For email, I'm afraid you're on your own. I'n finally going to separate email from the web host, and Fastmail.com seems to do that very well. Been thinking about it for two years, finally got the motivation - deep breath
Good luck, everyone. It was a wonderful family.