Normally this is solved with either an incremental backup (backup all files since the last backup) or differential backup (all files since the last full backup). The Gnu Tar manual (section 5.2 and 5.3) has a brief discussion of these type of backups. However, this doesn't solve your problem of wanting a minimal number of copies of each file.
Another option, if you want to get an exact snapshot of the system on each backup, yet still save space is to use rsync snapshot backups (do a google search for rsync snapshot, there are several articles and tools that implement this). Basically this uses rsync to make copies to a remote system (or external drive), and uses hard links against files that don't change between each backup, to save space. To get multiple copies, you would then rsync your backup drive to another backup drive.
But, if you want this to all happen on tape, the only thing I'm aware of is commercial backup tools such at Tivoli. You might look into Bacula, which I think also supports keeping a minimum number of copies, but I haven't used that one yet.
Something that will be available soon, is a backup tool that I've been working on myself. I need to put together a bit more documentation and clean up the code before putting it up on github, but basically it does the snapshot-style incrementals-forever backups, keeping track of files by MD5 hash, and storing a catalog of snapshots of what a system looks like at each backup. It also, as a side effect, does file-level de-duplication when backing up multiple hosts to a single backup server. If you are interested, I'll come back later and update this post once I have the initial version of this tool uploaded (assuming it isn't against policy here to promote your own projects -- if it is, my apologies).