In my mind, the difference between frugal and cheap is this:
Frugal is saving money by limiting spending on yourself; cheap is saving money by limiting spending at the expense of someone else.
For instance, when my husband and I go out to dinner, we don't spend a lot of money. We usually get one entree and perhaps an appetizer to share. We are water drinkers and dessert is usually something I prefer to have at home (because my list of desserts to make is so long that if we have dessert when we go out to eat, I'll never ever make a dent in this list). So, generally our bill is fairly small. I would call this frugal.
But the tip? We always leave a good tip. My husband's standard is to leave (he claims that if the service is really bad, he'll do 15% or if it is truly terrible, 10%, but I have never once seen him do this). And if our meal was so inexpensive that even a 20% tip would be less than five dollars, we generally round up to at least that. Trying to save money on eating out by shortchanging the waiter seems cheap to me.
Plus, I like the idea that the waiter might assume it'll be a pathetic 7% tip or something because we obviously aren't big spenders and then opening up the bill to see that we did right by him.
I think of cheap as trying to get other people to pay for things that you should be responsible for or trying and save money at the expense of someone else.
I always want to live frugally, but I try hard not to be cheap.