Example with SSH
mysqldump -u DBUSER -p DBNAME > FILENAME.sql # Create a sql backup. You can do this via phpadmin if required
tar -czif ARCHIVENAME.tar.gz
Transfer files to your new environment using ftp and place in the root of your new site. Then after creating a duplicate named database, user and password ( you do not have to do this but it makes one step easier ) Restore the two backups
tar -zxvf ARCHIVENAME.tar.gz
mysql -h HOST -u USER -p DATABASENAME < FILENAME.sql
Now modify the local settings firstly in /app/etc/local/xml where you are looking for the block below. Change HOSTNAME, USERNAME, PASSWORD,DATABASENAME to match thos that you have created.
Then modfy the table core_config_data, chanmging the records for web/secure/base_url and web/unsecure/base_url to match you servers domain name
After that delete the cache from the root of the new server by
rm -rf var/cache/* var/session/*
And reindex the tables with
php shell/indexer.php reindexall