There is a much better way. "Leave it" is about PREVENTING the dog from getting something, not taking it away from him after he's already picked it up. If you're teaching with food, start by closing it in your fist. The second he stops mouthing or licking your hand trying to get at it and looks up at you, mark it (verbally - Yes! or with a clicker) and release the treat, or give him a treat from the other hand.
With food on the floor you can cover it with your foot. At first he'll dig at your foot to try and get the food, wait until he gives up and backs away from it and looks at you - mark it and give a treat from your hand. Work up gradually to not having to cover it with your foot, but be ready to put your foot back if he goes for the food. Eventually you can drop food on the floor and say "leave it" and he won't even make a move towards it. Throw a verbal party, and give him a jackpot of treats.
You don't have to just use food, you can use a favorite toy. It's easiest to teach in a fairly narrow area. Put the toy behind you and stand between the dog and the toy. Body block him if he tries to get at it, and mark and treat when he stops trying to go around you and sits and looks at you instead. When he stops even trying to get at it, you can pick it up and play with him as the reward.
Generalize to a variety of items and circumstances. You can also put a bowl with some treats in it, or his toy, in the middle of the floor, and then bring him into the room on leash. Walk him towards the item, and stop when it's just out of reach. You want to make sure he can't self reward by getting at whatever he's supposed to be leaving alone. Give the command, and the second he turns away from it (do not pull him back, you're looking for HIM to make the choice), mark and treat. Get creative. Do you have cat? Try it with the litter box.
Chris's explanation about trading is exactly what I do. This is to prevent your dog from playing keep away with things he's not supposed to have. When mine were puppies we did lots of trading games so they learned that if they gave me that toy/ball/bone, they'd get something yummy in return, and then they would get back what they gave up too. By starting with fairly low value items, trading them for something really good (cheese cubes? hot dog bits? peanut butter? freeze dried liver?), you can gradually work up to more valued items. This is something you should be working on for at least a few minutes every day, preferably with each member of the household - don't wait until he's already got something he shouldn't have to try trading, this is a preventative measure. Make it a fun game that he'll enjoy playing, and then when he gets something he shouldn't have that you won't be able to give back to him it will be no big deal. Remember to use lots of praise.