|Voted Best Answer
The answer depends on your contract. If you do not have a written contract, you need to begin documenting everything. Begin by using a calendar and marking the days the contractor started, worked, you had to speak to him/her about the work, etc.
Next photograph the work you feel is sub-par. If work has been corrected, photograph it now to have a record of its condition. If you have any "original" or "before work began" pictures get those together, too.
If you do have written contract, see what it says about warranties, complaints, failure to finish / comply, etc. Holding the money may end up with the contractor taking YOU to court for the funds - you cannot just hold the money. You need to document in writing what is wrong, what you expect to happen (be specific) and when it should happen by. A good contract will explain if and how money can be held, how the arbitration or complaint is filed, etc.
You should also invite another contractor to come in and bid the work to finish the job. They can confirm the quality of the work and give you a price to fix / finish the job. This gives you justification for holding the funds and an option to finish the job.
If the contractor is not willing to fix the work or listen to direction, do not allow them back in the house. A judge will ask you why you let them continue to do work if you found it unacceptable. Take back the key or access to the building - you can also attempt holding any materials or tools as collateral if the cost of repair is higher than the amount owed. Again, document what you are holding, its estimated value (google or ebay search), etc.
Finally, in writing you should fire the contractor and state the exact reason(s). Document everything; if it is done in person after they leave make notes of what was said, agreed upon and disputed. If you are satisfied that what you have paid is fair compensation for the work done, make sure this is noted in the letter firing the contractor. If you feel money is owed, you will need to file a small claim in your local court. Include the documentation you made, notes, letters, etc. when you file your claim so the judge will have a copy of everything. Don't forget to contact the BBB.
Do not wait for the court date; go ahead and hire the other contractor and have the work completed. Bring this invoice to court with you (file it before the court date if you can). Bring photos of the finished work (again, file it with the court before the date if possible). You must show what good quality work looks like vs the poor quality work.
Otherwise it will be a your word against the contractor and you will most likely lose, (the contract is a promise to pay for work) or even if you "win" you will most likely split the difference between the argued amount of money. Also be prepared for the contractor to file a small court claim against you. Same process as above, except now you will respond to the summons with a copy of your stuff to defend your reason for holding funds instead of asking for money back.