I agree with Jason Knight wholeheartedly. I have a few comments to add involving the non-technical stuff.
In my opinion, this should all be part of the contract. When you create a contract for work with someone, specify exactly what you are looking for! The more specific the better. This does a few things:
That's how I would handle it - everything else is subjective and water over the dam... Also, this is probably the only way you could win a lawsuit successfully because as you noticed "developer" is not a protected term meaning that there is no special license or credentials someone needs to call themselves that, unlike a Doctor or Attorney which require special credentials. So instead of relying on the title, rely on the specifics of the job which are clearly spelled out in the contract. Otherwise, get a recommendation from an acclaimed developer so you know you aren't dealing with a dirtbag.
The problem is now that no matter what we say - if you sue one one these guys, their defense will be "Well, I did it to the best of my abilities, I have 50 other happy customers, and this is standard practice." That's a pretty good defense when there's no contractual obligation otherwise.