If we mess up an order (forgotten, wrong, badly made), they get one.
If it's someone's birthday they get one. If they've just moved into the area, started a new job, got an interview and having a quick coffee at ours beforehand, we wish them all the best, welcome to the area, whatever, and say here's a couple free coffees, it'd be good to see you again. Provided we do what we do well, they should come back, and make a habit of coming to us. The owner of Yo Sushi said every family he looks at walking through the door should be seen as £1000 turnover per year (or something to that effect). If they like the experience, and come back once every month they'll spend a lot of money. I feel the same. If it costs me 3 coffees to get someone to come once every week when they do yoga, it's well worth it.
Loyalty cards however just give discounts to the very people who are already loyal for other reasons, and keep giving the discount forever more.
We also put the cards in tiny brown envelopes with the word [BRIBE] on the front and give them out in the street.
A grab one pile would be nuts unless it was for a free coffee at a sister coffee shop (we're just the one though).
One thing to consider if you were thinking about getting rid of loyalty cards, is the backlash. I'd recommend having bribes or something similar, then giving people three or four in exchange for their loyalty cards. Buy them off. Colin Harmon spoke about it being easier to add, than to take away, in his Tamper Tantrum, and that has kept me from ever adding loyalty cards to our shop.
Good luck with whatever you end up doing!