The idea behind patents is to protect inventors from having their ideas immediately copied by others. This is supposed to serve as an incentive for people to innovate, and to put their ideas into practice without fear that their efforts will be wasted.
It has worked well over the centuries to ensure that inventors of things like the telephone have an opportunity to market their products. Research, development,and building a company to develop the market is expensive; if Alexander Graham Bell had not had been able to patent the telephone, he might have had little incentive to develop it to start with, or alternatively lots of little companies might have sprung up putting him out of business. Business savvy rather than inventive savvy would have won.
In today's world, we hear about patents most often in two domains. The first is biotechnology, where companies spend hundreds of millions developing, testing and seeking approval of drugs. It seems absolutely certain that without patent protection, they would have no way to do this.
The other area is software: There have been many articles in the news about Apple, Microsoft, Google and the manufacturers of Android phones tussling over patents. Not all of these are software patents; a few relate to the hardware of phones, but a substantial number are primarily related to software.
It is being suggested that the whole Android platform might be in jeopardy due to patents. Microsoft is supposedly enjoying more revenue from Android (due to licensing of Microsoft's patents) than from Microsoft's own mobile platform. Apple is poised to bring in a lot of revenue from Android too. Together these companies could raise the cost of Android phones to a level where Android manufacturers just can't compete. It won't help innovation to put the Android platform out of business solely as a result of a patent war.
The problem with software is that is is incredibly easy to 'reinvent' ideas that others have patented. This is because the vast numbers of developers out there can each churn out tens of thousands of lines of code a year, and many dozen user interfaces. Developers have to be extremely wary of accidentally violating a patent, yet most have no way to verify whether their 'inventions' violate patents. This is because there are so many, because they are hard to read, and because there is a delay before they are 'laid open' for public viewing.
Some suggest that software patents are just as important for innovation as hardware patents. But is this really true? If Apple (to take an example) had not received a patent on core aspects of their iOS user interface, would Apple not have produced that interface? I think they would have. Such patents however still seem somewhat fair: It certainly seems that a company should receive some market head-start from developing a truly new software concept. However in my mind there are two key changes that are needed:
1. The concept of what is truly new needs to be changed in the software arena: Patentable inventions are supposed to exclude ideas that those with normal skill would have been able to come up with create to solve a given problem. This needs to be reinforced for software. Patent offices need to search extensively through open source software, commercial software (that they would have to license) and academic research in order to see if others that have come up with the same idea or something close. Currently most patent examination for prior art focuses on other patents. I also think that all software patents should be subjected to open and systematic peer review to test their true originality.
2. Software patents should be open for public scrutiny the moment they are filed.
3. The period of protection needs to be shortened. Four years from the time of issue should be enough.
4. Licensing should be mandatory after a certain number of years (e.g. 2 years) have passed.
I think points 1 and 2 would exclude most patents to start with, and points 3 and 4 would reduce their impact.
Here's another excellent article on this topic.