We have our carpets professionally steam-cleaned at least 3 times a year. Our carpets are pale beige and we have pets, and steam cleaning makes them look practically new (our wall-to-wall carpeting was the cheap stuff from Lowes--we know, because we had to match it when we had our staircase carpeted--and it still looks great although it's not as soft underfoot as it was when it was brand new).
We use a local company. Try to get recommendations from neighbors or co-workers because remember, you are letting a complete stranger into your house. (Not to get too off-topic, but we used the same company for our carpet-cleaning for about 8 years, and when the owner retired, he sold out to a guy who I had to call the cops on.

The company I use now is owned by the step-brother of a former co-worker, and we have asked them to always send a family member to clean our carpets, not one of their semi-transient helpers.)
I have read that Chem-Dry or any dry carpet cleaning does not do the job nearly as well as steam-cleaning.
A good steam-cleaning company will move your lighter furniture (coffee tables, etc.) to clean underneath and will put plastic under the furniture legs to prevent any transfer of color to the damp carpet. I recommend against having them use a deoderizer--the steam cleaning itself should do all the deoderizing and some of the scents they use can be icky.
Most carpet cleaning companies in my area will have a "whole house special" that's a really good deal. Our carpet cleaning (3 BR house with 1700 square feet) usually costs about $120 (depends on who prices it--some workers charge extra for the stairs and area rugs, some don't) and is worth every penny.
The carpet takes about 24-26 hours to dry with the air-conditioning on for dehumidifying. You can still walk on it when it's damp, although that's not ideal. (We always walk on ours because we have no place else to go!)