I generally tip at or around 18 to 20%, however if the service is subpar I leave less usually 10%, if the service flat out sucks as does the food it's 5%. I think that speaks pretty loudly.
Example we frequent Claim Jumper for their happy hour menu as the two of use can eat and have a cocktail out the door for $22. We often sit at the bar and dessert/pizza cook knows us and always throws a little something in and we tip accordingly for their effort and kindness. The other night we met someone so we got there a bit later, there was a line so the ass hat waitress comes by and tells the people at the end of the line there is no wating for the bar so if you see something open or someone finishing go stand there, WTF here's several groups pateintly waiting(one an elderly couple), social order and manners and you tell this group of 7 people just to snake a table. Well she gets to be our server, promptly throws the dringk coaster on the table, takes the cocktail order and disappears for 15 minutes. Comes back with the drinks, one was an ice tea with no ice in it, we try to order since we know the menu and get the same damn things every time, she says hang on there bro, walks away and comes back 5 minutes later and takes the order. Order comes out in 3 pieces, we basically finish the entrees if you will before the salad comes, never asks if we want a refill or another cocktail and drops the bill on the table. It was $34 for 3 of us, I went out to the car got all the change in my bag out and left her $1.83 in nickels, dimes and pennies. She got her crappy 5% in change.