Well, my shower curtain, I spray down with vinegar solution, scrub lightly and rinse. Works pretty well.
Grout can be tricky. The best thing we had done was having it regrouted and resealed recently around the tub - it's stayed clean a lot better since. So personally, I think replacing the grout will really give you an edge if you've been having a lot of problems and/or resealing it.
I use a soft-scrub cleaner by ecover for our tub and grout (mainly cause it was recoated by previous owners and using baking soda will scratch the recoating material). Grout brushes I've found the most helpful, no matter what you use. Wiping the grout down regularly after showers also helps a lot (though may be impossible to implement, depending on your household.)