I have a 4 year old and a three year old, and in the past, I've done both the gift bag, and one toy for each. I've found that if you give them one nice toy, they are more likely to use it and not have it just thrown into a pile of toys to be garbage later.
Target has (or had in April anyway), a small Playdoh container with a Dora and Diego character on the top for about $3-4. I just got favors for my sons Lighnting McQueen party, and I got them each a die cast Cars Movie car for $3.29 at Target & Meijer.
Target also has Dora and Diego items in their $1 section right now. And they have that section back by their toys that has chalk, jump ropes, and other various beach toys for under $2.50 in the red bins. My sister-in-law gave a bucket with sand toys one year, the kids loved that too. I think the big hit was at my sons June birthday party last year, when I gave squirt guns, and the kids soaked each other in the front yard, (I got them at Party America for $2.50). His cousins are a little older, so they enjoyed it. Plus it was about 80 degrees out that day. However, if water is involved, be sure to tell everyone to bring a change of clothes :) I try to stay in the under $4 price range because it can get really expensive otherwise. Good luck, hope this helps.
M.