We have a star chart going, so he has a list of toys to save up for. 16 stickers (pretty 4x4 grid!) means he gets a small toy - he can earn one sticker a day for a specific thing. We've had a bit of a toilet training relapse, so at the moment it's for staying dry - previously was for good behaviour in the morning before breakfast. He's saving up for a Buzz lightyear which hopefully he'll get tonight!
So, now when he says "I want" if it's a small toy I'll say "oh, you'll have to save up for it then" ... if a big toy "you'll have to ask father christmas for it". It's had the added bonus that he only "earns" toys he really wants (as by the time he needs to pick a new toy goal, it's something he's remembered for a long time).
Works well for us, anyway.