I think the problem with the Patent system isn't the idea of patents, but some factors that need to have them adjusted.
1. Patent Lifetime. 20 years is much too long in the technology industry. As technology is improving at an exponential rate. 20 years to hold onto a patents means by the time the patient expires, the technology is so old and out of date that it isn't useful any more. Back in the old days 20 years was enough for someone to get it in the market and make a good living off of it. When it was over then you can get others using it.
2. Too many obvious patents. Especially in software, We code new and interesting stuff every day, as our programs are meant to solve a new problem. Software patents should be reserved for some really ingenious stuff. Like advanced algorithms that the average coder will go, you know I might as well just download the library and implement vs having to figure it out myself and probably not have it work as well.
3. Lack of a good Non-Patent Protection legal mechanism. There isn't a way to register your idea officially, while not having the patent overhead, and if someone patents the same idea you can use your registration to prove yours is legit.