The simplest way to put it is use a rewards card when you don't carry a balance (never carry a balance on a cc). Use the rewards card that actually gives you cash, not something you don't need, like a gift certificate or BMW.
Again, I suspect people like the roundel on their cc and flashing it. Because of that, they don't scrutinize the rewards schedule. 1% CASH (a true cash back, not some bogus tiered system) is better than 5% towards a toaster, or BMW. I'm simply astounded when someone says they send 20 grand through a BMW credit card. Amex and Citi have cards that will do a businessman much better. But it's a free market and that roundel is worth gold.