Not a lot to add, other than something I once read in a compassionate parenting book about this, which involves lots of time and patience, confused glares from onlookers who think you're making a big deal of it, etc. What was recommended was getting down to little ones' level and not taking toy off the one who snatched it, but saying to that child that the other one feels sad because they were having fun with the toy, empathising with the other about how nice the toy is and of course they want to play with it too, then asking if they will give it back. They usually won't at first, so you do more of the same - lots of compassion for both children's needs - and then, eventually, the kid who snatched it is likely to give it back of their own free will. That's the crucial bit - that they don't feel they're going to be overriden; that they feel they'll be trusted.
All this lovely ideal stuff said, I had a peek at this thread because I need tips for this myself! Ds is two next week, and on Tuesday's we take care of his little friend in the morning. Today was the worst day yet for tussles - whatever one had, the other one wanted - and snatched. I love the idealism of the approach above, and I hope I'd sometimes have the patience to see it through, but in reality, it would have meant this morning would have been four hours of non-stop dialogue, crouching down, empathy, etc. Impossible.
Sooo, ramble over, I favour Elibean and Blu's approaches in the real world. And thanks for the tips too, which I will be implementing next Tuesday morning.