I used to work in the carpet cleaning business. I've made several posts about the subject here if you do a search.
My bottom line for good results using a personal carpet cleaning machine is you must pre-spray the carpet using a pump up sprayer with cleaning solution and then use the cleaning machine with plain hot water to rinse out the cleaner and dirt. That's the best route with an older or cheaper machine. However, many of the newer machines spray cleaning solution out in front of the machine and clean rinse behind it.
Bottom line is you must rinse out all the soap/cleaning solution for good long lasting results as dried on soap attracts dirt.
Also, it's important to use a few dry strokes on each pass where you suck up as much water as possible; that way the carpet doesn't saturate.
You really can get good results using a home cleaning machine if you use it right and slow down.
One other thing, especially if you have pets: vacuum first! Home carpet cleaning machines don't have the power to deal with lots of animal fur, unless you take them apart and clean them out often.