On my way into work this morning, I was listening to the radio, and a commercial came on for Walmart. They had their standard line up of ethnically and age diverse-sounding people saying things like "I'm gonna buy my favorite video game!" "I'm gonna get the latest tunes!" "I'm getting some really cheap off brand cereal!" "I think I'll pick up clothes that fall apart after being washed once".
It was a commercial for their gift card, which they described as "the thoughtful choice this holiday season". That doesn't make any sense to me (especially at Walmart). If you really don't have any idea what to get someone, just give them cash, for chrissakes. Gift cards sell for cash value, so there's no savings either way, and it's just more convenient for everyone involved.
First, getting someone a gift card forces them to shop at one place. If they find something similar at another store for a cheaper price, they're just SOL, since I doubt Circuit City will accept Best Buy gift cards. Also, you rarely get a chance to use the whole value of the gift card. Have you ever gone to a store and spent exactly $25? $50? It's possible, but really rare. Most places don't give change until you're under a dollar left on there or something equally pointless.
For some reason, people seem to think that giving cash isn't very thoughtful. That may be, I mean, you didn't go into a store and say "oh yeah I think Bobby might shop here, give me that $20 gift card that's so conveniently placed right next to the checkout line so I don't have to look for it". Cash has way more advantages than gift cards; it can be split up and spent however or wherever you want. It's pretty and green. Strippers don't take gift cards. It's just as easy for the people working to process, too.
In summation, if you're not really going to put any thought into gift-giving anyway, just give cash, it's at least as thoughtful as a gift card.