When my siblings and I were children, we had a big box in the basement of various prospective gifts - mostly because children are notorious for saying "Oh, mom? Can I go to Sally's birthday party this afternoon?" with absolutely no warning. I think we had some stationery sets, stuffed animals, fake-but-tasteful jewelry, etc. When we got duplicate gifts from relatives, the extras went in the box too, to be re-gifted to someone who didn't know my relatives

It worked well as incentive for us, too - if we wanted to get our friends the perfect present, we had to be responsible enough to tell mom ahead of time and make time to go to the store. If we didn't, we had to give them something out of the box, which wasn't really as personal.
Now that I'm not a little kid anymore :-) I keep a few things around the house for the same situations. A candle, a necklace, a pair of movie passes . . . all things that could vary in cost from $5 to $30 depending on exact quality and where I got them, so nobody knows I buy them on extra super clearance sale, and they can't compare the $$ they spent on me to the $$ I spent on them. For a while, I actually wrapped the necklace and kept it in my car, because I wasn't sure whether one sorta-friend would have gotten me a gift or not, and I could always say "Oh, I got you one too; it's in my car" and pull it out if she surprised me. (She didn't, so it's back in the general gift box.)
IMHO, it's not as personal, but there is nothing wrong with keeping a few generic gifts on hand. Often it's more polite to just reciprocate a gift than it is to leave the other person wondering if they should have gotten you something or not.