Here is what I want out of a restaurant. I don't care too much about atmosphere, so long is it isn't horrible; I'm there for the food.
There are two parts to service: the servers and the kitchen. I am much more tolerant of slow kitchens (“good food takes time to prepare, please be patient,” reads a sign in many better-class establishments) than I am of inattentive servers. If the place is getting slammed with customers, cut the kitchen some slack. You want fast food, go to Sonic.
When you are not happy with your food or service, please don't just sit there and fume. Tell your server you're not happy and don't be shy about sending imperfect food back, if you have the time. All the restaurateurs I've talked to on this subject say the same thing. They want to know when you're unhappy, and they hate it when people stomp out without a word and then start a whispering campaign against the place. Finding, hiring and keeping decent cooks and servers is an ongoing battle for any restaurant, and customer feedback is the first line of defense against inept employees. You are paying them to feed you decently, and you have a right to tell them if they don't.