rar, ace, zip are all pretty much optimal.. you cant compress a compressed file anymore.. all you really do is add header/error correction records.. which makes the whole thing bigger..
you'll see people zipping small rars all the time.. or you unix people will see gzipped tar files (.tar.gz or .tgz).. this is because zip has error detection that rar/tar/ace doesnt (being RLE algorithms)..
ie; you can tell instantly if one of the zips is bad.. but when you have 99 rars of a solid archive, sometimes you can only tell the whole thing is bad, and it can be a pain in the ass..
and that concludes my file archive/compression lecture... hope you all took notes