Acids are great at eliminating rust, since they have very reactive hydrogen ligands (my favorite chemistry term) that end up binding to the oxygen in the rust. Unfortunately, it also etches the metallic surface, which allows future rust to appear faster if you don't give it a protective coating fast enough after cleaning it (I hear that motor oil is a good choice for this). Make sure to use a fairly dilute acid solution though, as the water that this reaction produces would otherwise promote "hot spots" where it is more corrosive. Combine this with how the acid etches the metal and you are just asking for trouble!
When I was working at my co-op, we used a 1molar phosphoric acid solution to remove the native oxide on aluminum. The more corrosive the acid solution, the faster it should work, so you should be able to get away with nearly any acid. I've heard people use anything from Coca Cola to perchloric acid and HF to eliminate rust. Also, never use those last two: perchloric acid can easily dissolve your skin and HF is like a ghost that eats through bone.