Let's define "horrible service" a little more precisely, since some of the people here can have trouble understanding these fine nuances. In fact, it might even deserve its own thread, but I really think this point warrents clarification here.
To clarify what Miss League Girl was saying, your service was "horrible" if the person serving you said or did something that made you want to get up and leave. Just to be clear, if you felt comfortable after first sitting down in a place but instantly wanted to be somewhere else once the waiter or waitress got there, no tip. If you feel threatened, degraded or intimidated, manager and possibly police.
Common factors:
1) severe body odor.
2) extremely long wait, no explanation. No apology, no tip. No explanation at all, go to the manager and ask very politely for an explanation as to why you were made to wait for so long. The manager won't fire the person, though. No, he or she would keep that waiter or waitress around just for the sadistic pleasure of giving him or her dirty looks for the next six months. Any manager worth his or her salt finds it extremely embarrassing to have to explain things to the customer that the person waiting the table should have known and tried to relay to you. The more polite you are, the worse the waiter/waitress will look.
3) insulting language or even excessive slang. That's a little bit like a verbal equivalent of reaching into your trousers and scratching your private parts. If you want to do that kind of thing around your beer buddies, that's fine, but there's a time and a place, people.
4) a critical or argumentative tone. If you are paying the bill, you win the debate.
5) yelling at people on the other side of the establishment. Pay the bill, though. It's not always the manager's fault your waiter's an idiot. Not always the case.
6) flirting inappropriately. Even at a Hooters, they respect YOUR boundaries. In fact, I'm a gay guy, and I found the young ladies at the one I visited to be extremely polite and appreciated their showmanship. Showmanship is one thing, but you and the person waiting the table have a professional relationship between each other. You are not that person's friend, even if you are BFFs on the outside of the establishment. You are not a potential date for that person, ever.
7) sitting on the table. Three words managers fear most: Better Business Bureau. If another person on the staff sees one of their coworkers doing something this revolting and doesn't intervene, it's not just the manager's fault, but the whole franchise is a loss and should be shut down. It's not just insulting, but it's putting your health at risk. No excuse, not even stupidity.
8) if you are forced to wait while the waiter/waitress has a lengthy conversation with one of his/her buddies, any good manager would fire that person on the spot. I don't even pay the bill if I see that. I get up and leave immediately. If I am going hungry or being made to wait unnecessarily because some idiot wants to treat his/her job like it's a social club where I'm really an uninvited and unwanted guest, I find that humiliating. I lose all respect for the establishment, and my view of the entire area is forever tainted with a sense that it is low-class and trashy in general.
9) trying to discuss religion or politics. If I bring that kind of material up at the dinner table when I'm visiting with Mom and Dad, they tell me to pack my bags and go home to where I live in Raleigh. I sure don't want to hear it from the person waiting my table.
and finally, 10) if the waiter or waitress spits on you, report it as criminal assault. See how the jerk likes being on probation.