I believe the first thing is to decide what you want to do. Are you there to prevent piracy, or to make sales? You can take measures to reduce piracy that also reduce sales, but that's usually a bad idea. Remember that most people who pirate your software wouldn't buy it already, since most pirates grab a lot more stuff than they could actually pay for.
The second thing is to remember that any copy protection can be broken. You can make it difficult to break, but in doing so you're running the risk of making it hard for your legitimate customers to use your software, and that will likely reduce your sales and customer satisfaction anyway.
It used to be that there was value in making software hard for the individual to copy, without worrying about experts, but given the ease of finding warez sites I don't know that that applies anymore.
If you're selling something that's at least partly an Internet service, you've got it made. Blizzard doesn't care who copies its client software, because to do anything useful the user has to pay for a World of Warcraft account along with subscription fees.
Otherwise, you want to try to make the legitimate product at least as attractive, preferably more attractive, than a pirate version. I suspect that if I were to pirate copies of some of the movies I've bought, they wouldn't force me to play several previews (which get way out of date) and some mandatory warnings before I could get to the movie. That's one of the things that will drive people to piracy. The more honest will buy the product and pirate the better version, but it's not too far from that to skipping they "buy" step.
If you can offer little web services for legitimate users, that's good. If you can offer something physically attractive or useful with legitimate purchases, that's good. Offering anything physical can work: I prefer to buy music for my iPhone as CDs rather than through the iTunes store, all things being equal.
The key here is to provide a reason besides legality why I'd want to buy the software from you rather than find a download somewhere. Most people are more or less honest, and providing them with a reason to buy rather than just grab will encourage them to buy. Also, don't provide people with a reason to pirate your software rather than buy it. If you push a person into buying and pirating, it's a short step to just pirating the next thing. Even if they don't, they may become resentful of the copy protection and either just not get the software or pirate it.