Depends on what is causing the stains...
Note, a sealer helps, but does not prevent stains. It slows the absorbtion, but some stuff will get in there and not all kinds of dirt are repelled all that much.
If it looked even when initially installed, there are some cleaners that can help. If it was blotchy when installed, it could be excess water and you are seeing some laytex migration from the modifiers after the cement was washed away.
One thing you can try is a 50-50 white vinegar and water mix - scrub with a medium bristle brush, then rinse well. There are commercial cleaners that can work, maybe better. The acid in the vinegar will actually take the surface layer of the cement off the grout. If the dirt has penetrated deep, you need a different cleaner.
Check out www.johnbridge.com for help on tiling...they also have some good, professional sealers and cleaners in their store. I've used them in my home.