I recently bought a professional steam cleaner and have found it EXCELLENT for cleaning really dirty carpets. This one differs from mine in that is also has a vacuum, but vacuum is not that necessary. The steam kills all the bacteria, etc., which leaves them cleaner, and no smell.
As a bonus, the carpet regains its factory appearance.