Robin, I have been known to not tip when the service has been poor. I see nothing wrong with that at all. Now, my wife too has a more difficult withholding a tip.
Btw,this has rarely happened. Partly because I don't hold a server responsible for thing which they can't control.
If it's bad enough for me to not tip the waitress, then it's bad enough for me to ask to speak to the manager. I'm likely to tip a lower amount but unlikely to not tip just because the waitress is bad. An attitude problem or rudeness gets a manager involved. However, I've also been known to speak harshly to a manager for their lack of training their personnel.
Also, if it's the kitchen that's bad, I will ask for the manager, and when the manager grants a price concession, I'll tip the waitress even more. I've tipped very generously when things have been so bad the manager comped the bill. The poor waitress is having an awful day if the kitchen is that bad. Once ate at one of the nicest restaurants in Miami and it took three hours. First their computer went down and they had to resort to paper, but we still just sat. Turns out when we finally got their attention, they had lost ours and one other order. We got free meals including dessert. We probably gave the waitress her largest tip of the night.