Hopefully these instructions give you a good idea where to start.
#1 Order the hosting from the new company.
#2 Add all the domains using the Add-On domain feature.
#3 Recreate all the e-mail addresses you use.
#4 Save all the files for each of the domains you have with the other host.
#5 Upload these files to the respective directories at the new web host.
#6 Make backups of all databases you have with your old host.
#7 Recreate the databases with your new host, and make necessary changes to any configuration files which store database information.
#8 Update your nameservers with your domain registrar.
If the new host you are switching to is not a reseller and actually has root access, you can ask them to copy your accounts over to the their server. This is assuming you are switching from a cPanel host, to a cPanel host. The root "Web Host Manager" control panel comes with a feature to copy accounts from other servers.
With the transfer tool, you still need ssh access to the server you are copying from. So if your old host allows you shell access, your new host can move everything for you.
If no shell is allowed, you can log into each one of your accounts with cpanel, and go to the backup section and download your full account. Then give those backup files to your new host and they can do the rest for you.
If you have a whm then there should not be any need for you to have cpanel to manage all the accounts. You can manage all the account with whm itself. You can switch between different accounts with the help of whm, if you have one.