The rule is simple: when giving a gift, think of the recipient. If the person loves gift cards, then give that. You can 'customize' it by picking a favorite store; there are cards for department stores, book stores, clothing stores, most stores these days. If the person dislikes gift cards, give something else instead.
The same applies to handmade gifts: some people love homemade goodies, while others hate them. Give what the recipient likes; avoid what they don't.
And while we're on the topic, not everyone says "I love you" the same way. Here's an introduction to five popular love languages: words, service, gifts, time, touch. If you and your family share the same language(s) then great. If not, the most loving thing you can do is learn how to express love the way other people receive it. They will be happy, and also if they notice how much work you're putting into it, they'll probably be impressed. This means that not all people focus on the gift-giving part of the holidays. A word-oriented person might prefer a long chatty letter or conversation about your year, a service-oriented person might favor being pampered, a time-oriented person generally likes doing things together, and a touch-oriented person might love snuggling by a fire. You get the drift.
Picking on people what they like is obnoxious. Don't be a dick. Especially, don't be a dick over the holidays.
Happy Chrismahanakwanzikah to you. I'm posting this note ahead of Thanksgiving because the shopping season has sprawled out this early so yes, really, this advice is already needed. Not to mention arguments over who pays for the turkey supplies and how. Ah well. Try not to kill each other.