Surprisingly enough, Oxyclean works miracles on a dirty bong.

Just put a piece of saran wrap over the stem and carb (if applicable) and tape it down, then fill the whole thing to the brim with steaming hot water. Add a couple scoops of Oxyclean, and let the whole thing chill for about 10 minutes. Once you empty it out and rinse it a few times, it'll be bright and shiny and beautiful!