I know lots of people give and claim to prefer cash or gift cards, but I just don't think that's really true. I know I prefer cash to a stock present (who really needs another picture frame?), but the real gift of a present is the time the giver spent thinking of the recipient.
It's a bit different for those in financially strapped situations, of course. If cash or a gift card would change the recipient's lifestyle, even for the day, then the gift is in the thoughtfulness of the change. For instance, I always give college students cash or gift cards.
I'm very lucky; if I need something, I own it. If I really want something, I probably already have it. But it adds immeasurably to my happiness wen someone cares enough about me to find something that I would never buy for myself, but nonetheless enjoy.