Cleaning your carpets is a good idea for number of reasons. It not only makes them smell fresh and eliminates odors, it actually preserves the carpet. You see, the number one cause of wear and tear on carpets is dirt - specifically, the dirt that grinds in under your feet. It breaks down carpet fibers from foot traffic, damaging the carpet and the floor beneath it.
I've only had experience with steam cleaning, which has always been successful. I'm always surprised by how much dirt it pulls out of the carpet. I steam clean the carpets in the rental property I own, and many times I thought have to replace carpet - only to have them feel good as new once the steam cleaning was complete.