I like tar/gzip:
tar -zcvpf /path/to/save/backup.tar.gz . --directory /directory/to/backup
z = compress
c = create new archive
v = verbose (just to see what its doing)
p = preserve permissions
f = the path following this is where to save the file
I just backed up my whole 1.5 GB site and moved it to a new server. Ran that command from my home directory, it packaged it all up perfectly. Transfered it to my new server, put the tarball in the home directory and ran this:
tar -zxvpf backup.tar.gz --directory /home/myfolder/
It was great, it extracted all of my directories and preserved all of the file permissions in a matter of minutes

If you want and don't use a control panel like cPanel and such, you could create a cron job to do this every night if you wanted.. to run the backup of a specified folder and store them on the server
