I tend to tip well, because I know that being a waitress is a difficult and frustrating job. I've had many friends in college who were waitresses, and I recently started a second job as a waitress. It's actually more difficult than I expected, especially for an introvert.
I pretty much always give 20%, unless the service was extremely rude. Then I would usually just leave 10%. I also think of $5 as a minimum tip for a meal, even if 20% is less. A coffee shop I'll usually just leave a buck or two for the barista.
Also, my limited experience as a waitress leaves me confused as to how to get a good tip. I've served some tables in what I would consider a perfect manner - prompt, friendly service, drinks always full, order exactly right - and they have left me nothing. Then, I have also fucked up on some tables before and forgot to fill their drinks, the food took longer than expected, etc., and I've received HUGE tips. It is odd.