A way to do it, that I'm sure is going to be deeply unpopular, is to charge a registration fee. Although this would not completely remove sockpuppets it would at lest impose a cost on them. The fees could be used for the good of the community.
That won't only hamper sockpuppets. Potential real users will not want to come. Registrations will plummet to zero. Blogs pick it up. I can see the headlines: "BitcoinTalk worst forum ever; discriminates against free registrations".