If the host does a full account copy, the cPanel system will pull across everything - email setup, home directory, databases, permissions, the lot. This is by far the easiest option but it has to be done by the host (logged into WHM as root). Many hosts will do this for free or minimal charge for a new customer.
The other option is to package up your files on one end and then use wget or similar to pull them across.
eg: zip them up on one end, then on the other end call a PHP page containing something like this:
system ("wget someotherhost.com/yourfiles.zip");
system("unzip -r yourfiles.zip");
Some hosts disallow system(), if so, you need to get their help with the copy or find another host.
As others have said, some hosts may support fxp, although when i last tried it I had no success at all. If you do get FXP to work, please let us know.