I saw a site develop basic functioning software and then selling it with details of future updates when $X amount was reached. The main product was useful to get people to purchase just for the initial software, but the updates were very tempting to be had. This way the company can also contract work when funds become available and then need less initial investment as well. Genius idea if you ask me! Plus have updates require downloads which would then have a new encryption to be paired with. The verified and working serials can also limit duplicate redownloads, so if a pirated copy gets out, it gets blacklisted quick and stops updates from being performed. To take it even one step further, you could put an encrypted piece of code that fails after a certain flag or starts to degrade in quality. But in all reality, it is truly a cat and mouse game. As long as someone tries hard enough, they will reverse engineer the software.
A second option I thought of after writing the above... Instead of selling software that users can download onto their computer, put it in the cloud. You could have the application be hosted on your own servers(software developer), and have a VNC style interface where you can only use the functionality of the program thru a web interface but not have access to the actual files for the applications. For dealing with large files, this could currently be a major pain, especially dealing with HD video. Another downside could be that you would need to host servers and if your application is processor intensive, you would need the horse power to run these which might add substantial costs.
Another major downside of copy protection; if you have great software with good copy protection that is costing the consumers a good chunk of change, someone else can just see your work and copy. They then release it at a cheaper price without ever needing to design, only write the code. So balancing your software's price to deter this from happening should be considered. Probably part of the reason prices on new released software is expensive then usually falls shortly afterwards.