Best bet which is a mix of what some people have said.
Dont protect the game, people will pirate it and there is not much you can do if its not a multiplayer only game.
Release it unprotected, still require cs keys etc. Of course.
Do a major update and hold off certain features on first release and when this is done add anti cheat, server product activation etc. This can still be cracked but is much harder.
Repeat this process if your a good developer you will have allot to add even after the game is out of the door.
This will make crackers lifes harder, new updates become more of a pain and allot of people will be happy just downloading an out of date game.
When they play the game and love it, see that the game is updated allot and again see features that they want to try out etc. They will probably buy it anyway so they are not waiting weeks or months at a time for someone to crack the latest version.
This wouldnt work for a AAA game as crackers are on the ball with those but for a good indie game its more than likely that your updates will slip through the cracks and 99% of cracks that the public are aware of become outdated.