This weekend I cleaned the gas tank and had splendid results using vinegar and cat sand. Here's how you do it:
Drain tank and plug up the draining hole as best you can (I just stuck a rag in there). Throw some vinegar in there (about a litre, depends on the tank size) along with a cup or two of sand. Shake the shit out of the tank (try to make sure you remove the motorcycle first). Repeat as necessary.
For the first couple of vinegar shakes some brownish filthy sludge came out of the tank. By the third I quit pouring more sand in there and used the following vinegar shakes to rinse out remaining sludge and sand. By the fourth vinegar rinse the drained liquid was pretty much transparent. I ended up using two gallons of vinegar all in all, which was more than enough.
The most difficult part was avoiding flash rust after the vinegar rinse. I caught some rust but didn't have the patience to re-do the vinegar and sand shaking. Still a lot better than before.
After the vinegar, I rinsed the tank with water and then left it for a few minutes filled up with water and baking soda (baking soda supposedly neutralizes acid vinegar remnants). Then rinsed out all the baking soda with water. Ran some medical grade alcohol in there to dry the water out, then a few bursts of wd-40 (5-56 for our swedish readers) before mounting the tank back and filling it up.
Not for Pussies!