Probably because you are on shared hosting, which works well if your site does not get that many visits every day. You are probably at the point where you need a VPS or possibly even a dedicated server.
These are really separate processes. There are various ways to achieve this, and there are many tutorials available on the internet. The fastest and generally the most obscure for most people, is via the command line. The slowest, but generally the easiest, is to download everything off your old server via ftp and upload it to your new server via ftp. As for mysql databases, you can export from your old host and import to your new one via phpMyAdmin.
Migrating email is a completely different animal and out of my sphere of experience. But there have been several recent postings in this forum about moving email. Your best bet may be to go to a different company that specializes in email.