I agree with the general consensus here. I tip based on the quality of the service in that individual circumstance. 20-25% for outstanding service, 15% for average service, and if the service is subpar or nonexistent, I tip accordingly.
Worst case I ever had? We (a group of 4) were seated at an Outback restaurant in Arizona, and it took the waitress literally 20 minutes to come over and take our orders. Mind you, this place was not busy at the time, and I could see her yapping with one of her buddies in the back from my seat. Anyway, when she FINALLY took our orders, she had the nerve to be rude to us (her tone was very condescending and sarcastic) and even then she did not get our orders right.
Did she get a tip? Yep, she sure did. I left a handwritten note with a TIP on it. "Lose some weight to be more attractive, and be nicer to your customers and you might get better tips from now on. You'll have to go fishing for the tip I left you today." I had left a rusted penny in a dirty water glass.