I always tip highly, and recommend the same for several reasons:
You get what you pay for, if you use the same service more than once, you should invest in a good experience. The tip-service ratio goes both ways. The better you pay, the better you will be treated in the future. One Chinese restaurant near me used to quote me at 45 minutes, and take an hour and a half to deliver. They had the best food and their competitors were an hour away anyway; I decided to tip them a little more than normal, enough to be noticed but not much more than that. After about 6 deliveries they went from taking an hour 15 minutes, to 10-15 to get to me. The same goes for dining somewhere, I see too often people don't tip very well, and get angry when the waiter they never tip is curt and inattentive. If you can't please someone with your service and smile, it's a better investment of time and effort to spend that on another patron.
Waiters often get the short end of the stick, and should be paid more than they are, not only because of how close to the bottom line they are, but how incredibly rude some people are. Some people seem to forget that a waiter or waitress is a human being, just because they have a uniform on. "Why are you being rude?" "Don't be upset, she's just a waiter." is a sentiment that is not only ridiculous but far too common. I remember sitting next to a man who ate his entire meal, to call the waiter and complain and insult her for how it was cooked, being very demeaning and insulting while she smiled and took it. All I could think was "Why didn't you ask them to fix it earlier before you ate the whole thing, and why are you blaming her?"
If you can spend money, you should know how to do math. If you have 25 dollars, and buy 25 dollars worth of food, you can't say you "can't afford" to tip. You can afford to tip, but you have a debilitating lack of foresight, or perhaps empathy. If you have 10-20 dollars to spend on a single meal, you shouldn't be complaining about not being able to afford a tip. I used to live on 20-40 a month, and would have to buy shitty foods in bulk. I remember buying a months worth of noodles, a giant 2 or 3 pound can of tomato sauce to season into spaghetti sauce at home, and a bunch of cheap meatballs for an entire months worth of meals. Did the math with my cousins, when we got home I prepared and cooked the meal, we ate and stored the leftover noodles, sauce and meatballs from the first night, (enough for all of us for a few days,) separately to ensure people could enjoy it however they wanted. Our roommate who had contributed nothing so far, decided to dump a giant can of chili onto the noodles in the fridge, because noone else would eat them after that. "Why did you do that?", "Well that's how I like them." Money was tight and food was scarce and everyone gave me shit for stealing food and I had no idea why, until my cousin walked into my room and apologized. "I'm sorry I've been on you for the food, Jess was just upstairs and we asked her where the bread went and she said you took it, but I know you've been playing video games all day and haven't left your room." I was pretty mad. Having been through that sort of experience, I can decisively tell you, if you have 10-20 to spend on a single meal, you have absolutely no reason to act like an impoverished poor child who can only afford his own meal. Do the math ahead of time and if you have 25 to spend, and tax will be 3, and your food is 22, you CAN in fact not order the 3 dollar add on or whatever. Budget intelligently.
PS. Delivery fees often don't go to the driver, who has to use his own gas, also if they have to pack your order and deliver it, it is time they could be spending serving a customer in store who could tip them.