Before this thread gets locked, I just want to say that I understand and agree with what TootsNYC is saying.
I think that gifts are meant to communicate thought, attention, and kindness. It doesn't matter as much whether you find the "perfect" thing for someone, just that you give something out of the warmth of your heart to show that you care about them and want them to be happy.
When you turn gift-giving into a shopping list, "tell me what to get for you, and I'll wrap it up", it kind of sours the feeling of spontaneous generosity, of "Hey, look, I got you something because I care about you!" It makes it clear that you feel an obligation to give a gift, and want to check it off. You're trying to do something nice for someone, but you're putting on them the obligation to think of something and making them tell you what to do, instead of thinking of it yourself.
To me, it makes the gesture feel hollow if someone wants me to tell them to buy me something, instead of just giving me something they think I'll like. "I'm supposed to get you a present. Ok, what do you want me to get you? Ok, here you go."