How it is done is entirely dependent on the hosts involved. If both uses cPanel there might be an option to get a "cpmove" file from the one you transfer from and the one you transfer to can use that to setup your account just as it was at the previous host (if you want everything moved over and not just one site out of several hosted under the same account).
If both does not use cPanel, or if you just want to transfer parts of what you host at the original host, the method would be to do as Dead-i mentioned, backup files using ftp, and databases using phpMyAdmin (or other database tool provided by the original host), in this case you can either upload the files, and restore the database to the new host, or there may be an option to pay an administration fee to have staff from the new host perform this action.
For our free hosting, you would however be left with the option to backup files with ftp and databases with phpMyAdmin and move them yourself, if you are looking to migrate to our premium hosting the staff there can assist with moving your site over.