rsync would be best depending on how much space you have on your ftp server? If its small would be best to create a script executed by a cron job to gzip the files you want and ftp them across to your ftp server.
You can have it backup/transfer whatever you want, as long as you have a database dump as part of the tree you're transfering to the backup system. Rsync is probably a bit more secure than plain old FTP.
Take a look at rdiff-backup as it supports transfer over rsync and allows you to keep an incremental history so you can go back in time if needed. It keeps a mirror of the current area being backed up and a bunch of reverse deltas so you can go back in time.