Unless you're doing something fairly odd, you won't overwrite in the traditional sense. rsync is designed to bring a file system tree on a remote server into sync with a file system tree locally (or vice-versa). The first day you run it, it'll take a while and copy the whole tree; the following day, you'll copy only the files that have changed.
If you want historical information, but are short of space, then instead of keeping multiple copies of the tree, you may find it more satisfactory to run a cron job that tars up the directory on the remote server, compressing as hard as it can, and keep as many of those tarfiles as you can afford.
As derfk has noted, you get to choose whether rsync (eg) deletes files on the remote side that have vanished locally, as well as much other behaviour - but it's your job to catch it before it syncs the tree, if someone has changed all your local files to say "I HATE PIE".
That's one of the reasons why I don't think of rsync as a proper backup solution. But if you have only another server to do the backups do, and you don't have much space on that server, then rsync + aggressive tar is probably about as good as you can do without getting into funky union FS tricks, and it's definitely better than no backups at all.