Thinking about buying a steam cleaner for cleaning interior and engine bays, but on the flip side there are also dedicated carpet cleaners.

Which work better and why?
Which do you own and are you happy with it?