I don't wait until the holidays to start preparing. If I see something in January that I know someone on my list would love I will get it. If it's something they need I don't wait to give it. The problem is remembering where I put it away so I don't find it a week or two after Christmas.
I try to update my list as the year progresses based on interactions with the individual. I make sure to include things I can knit, crochet, sew or make that they have expressed an interest in. For kids I love to give gifts that help them learn a craft or improve a skill. I try to get gifts for adults that suit the individual.
At 50 I no longer need to impress with expensive things I can't afford. And having a limited budget, and a lot of people on our list forces me to be creative and loving which is truly in the spirit of the holidays.