When it comes down to it, someone who wants to use your software bad enough will do so no matter how much effort you put into it. Take a wild guess at how many hours it is after a new Photoshop release that the cracked version is also released?
You can do some basic things like nag screens and serials, but when it comes down to it, anyone who thinks your software is that great, and worth paying whatever you're charging, is going to pay for it.
That's the reason Adobe can sell Photoshop for $700 - because the legitimate users who find value in PS will willingly fork out hundreds of dollars. Joe A. Chan who simply wants Brittany Spears' face on a nekkid lady is just going to pirate the software. Plus, digital artists who try a pirated copy of Photoshop and get hooked into the PS way of doing things aren't going to want to learn a new tool (GIMP, etc.). That's why Adobe isn't terribly worried about people pirating their software.
And neither should you. Simple serial codes are the least annoying to legitimate users, and they won't waste too much of your time trying to implement them. Your time is probably better spent not on keeping non-paying customers also non-using customers, but making your product the most amazing product you can for those legitimate, paying users.