I think that the principle of patents is okay. Invest time and money developing an idea, with a guarantee of exclusivity on executing on that idea in the marketplace for a period of time. It encourages a level of risk taking for "getting there first".
Software patents aren't any different in many respects because somebody has to go through the time and effort to actually come up with the idea.
The problem that software patents face is that, while many of the ideas are new and innovative to non-software people, software people tend to groan about seemingly obvious amalgamation of common software techniques into another idea. But really, most patents (non-software) are the same:
Cooking an egg with an electric heater http://www.google.com/patents?id=RgcEAAAAEBAJ&printsec=a...
Glasses for a chicken http://www.google.com/patents?id=M5BGAAAAEBAJ&printsec=a...
Making water hot with the sun http://www.google.com/patents?id=YBwrAAAAEBAJ&printsec=a...
Resoling a shoe http://www.google.com/patents?id=895CAAAAEBAJ&printsec=a...
Keeping paper dry http://www.google.com/patents?id=7IBqAAAAEBAJ&printsec=a...
That was 60 seconds of searching the patent database of common sense ideas. Clearly obviousness is not much of a threshold in patents, software or otherwise.
Perhaps a better way to think of software patents is not "obvious ideas" but "soon to be obvious ideas". In my experience, most software patents become blindingly obvious after the fact, but if they were so obvious beforehand, somebody would have:
a) implemented it into a working system (prior art)
b) patented it themselves first
Our principle problem is that the world of software moves breathtakingly fast, and keeping soon-to-be-obvious ideas locked away for a long time can seem ridiculous. But make no mistake, even implementing some obvious ideas can be the investment of millions of dollars in R&D.
For example, a system integrator I know of had an IR&D program that spent $130 million dollars just in the R&D phase for what amounts to off-the-shelf software, installed on a few VMs, on rackmounted servers, in a large plastic shippable box with a few perl scripts and cron jobs hacked together to shuttle data between the COTS software and an Oracle database running in one of the VMs. Obvious? Perhaps. But nobody had gone through the trouble to actually do it, and spending that kind of overhead was a significant risk.
Should they own this idea for the next decade or so? Probably not, but how about the next 12-24 months? At least long enough so that they get a head start against competitors who didn't get there first.
I do think the patent system is need of serious reform w/r to getting rid of patents with prior art. Fighting a bad patent can be more expensive than getting one in the first place. And software patents are too frequently granted in cases where there is obvious prior art, common algorithms for example.
If we really want to fight software patents of obvious ideas, or permutations of obvious ideas, perhaps somebody should write a tool that simply combine every obvious idea in software into some greater system, then documents it all thus creating prior art that stops all of these so called bad patents...and then patent the "prior art permuter". In other words, if the ideas are obvious, a piece of software that does this should be buildable. I call this the "obviousness of software patents theorem".