...I've just spoken to the Adwords team - They say 10-15 keywords MAX for each ad!
David, this is just a personal opinion.
I would always try to have just ONE keyword / phrase per Adgroup. I would then write at least three different ads to test against each other to see what gets the best click through rate. Split testing is vital.
The problem with carpet cleaning adwords is the relatively low search numbers which mean it takes time to get meaningful results.
After a minimum of thirty clicks, I would dump the weakest ad ( lowest CTR) and ad a new advert to that ad group.
Why is this all necessary? Your "buying power" of your position on the page is effectively, Quality score x Click through rate percentage x Bid Price.
If you could (theoretically at least) get 10/10 quality score and 100% click through rate, then you could get pretty high up the page without paying too much at all.