Maike is a thief and if anything drops to the floor she will come dashing and grab it, no matter what it is. It's only in the last couple of weeks that she has been willing to swap and it works best if I get a piece of cheese or gravy bone and don't even look at her, just hold it so she can see it. She usually drops whatever she has and comes running (then the trick is to be fast enough that I can pick it up before she dashes back and grabs it again!). For socks I now use the method tenaille has described and she will usually let go if I hold still and don't pull in any way.
Having said that, she's only 7 months and I dread the teenage months when all this training is probably going to go out the window. She's never showed any guarding behaviour which means that if she grabs something that could harm her and absolutely mustn't be destroyed/chewed I do in an emergency grab her and try to prise it out of her mouth and really hope I either manage to train her to not grab everything before she gets at that age or that she stays as sweet as she currently is.