"Best" depends on what you need done and what your setup is. There are many powerful backup and mirroring solutions for Linux, but most are overpowered for the single-machine user. That is, what they're generally intended to do is backup entire networks to a central server. That's not what it sounds like you need.
You've already got two things on your system that can accomplish basic backups, tar and rsync. The first creates an archive that can be compressed or not depending on the options. The second is more versatile. It, too, is generally intended for remote synchronization, thus the name, of file systems, but works just fine for local backups.
Tar is pretty straightforward. You could think of it as another ZIP, RAR, etc. utility except, by itself, all it really does is create an archive, i.e. a single file with all the files you elect to place there that can be compressed via gzip or something similar via options, e.g.:
tar czvf /data/backups/backup.back /home/$USER
would backup the entire /home directory of the specified user and place it within a file called backup.back. You can invoke various other options for periodic backups that works off this master copy, updating files that are new, deleting old files, etc. I use it within scripts for various purposes.
It sounds to me like RSYNC is more like what you want.
You could create a command or a script for this that could do a lot of things in an automated way, but there's a nifty GUI for rysnc called grsync. I believe in Ubuntu, all you need to do to get this is:
sudo apt-get grsync
IIRC, the menu option for it is stored in a weird place, under Applications > Internet.
Here's its homepage:
http://www.opbyte.it/grsync/And here's an page describing its use a bit more:
http://theaddicted.wordpress.com/2008/05/12/how-to-backup-ubuntu/It's fairly straightforward.