In addition, patents are antithetical to computer science research because they encourage secrecy and discourage collaboration. Greed is a poor -- some might say immoral -- motivation for research.
The original point of patents, ironically, was safe disclosure. Without patents secrecy is the main protection, and reverse engineering the main attack. With patents, you have safe disclosure, and your competitors can read your patent and innovate on your existing designs. Patents are a good thing, just not for software. IANAL, but the main problem in my view is that software patents attempt to protect ideas. Every other kind of patent, save business process patents (which I view as close cousins to the software kind), explicitly cannot protect an idea: you can only patent a manifestation of the idea in a physical device. And you have to submit the complete design with detailed drawings to a public review process.
If that same logic were applied consistently to software patents then Amazon could only protect their specific implementation of one-click, not the idea of one-click. And if they can only protect the specific implementation (and, in the process, have to publish that source for review), then copyright is a sufficient protection for that purpose. In fact it is safer, because you don't have to publish anything to secure your rights under copyright law.
So, if copyright is safer, then why do software companies prefer patents? Because, as degibson alluded, they can be used as a legal club to batter other companies that appear to be trying to enter your business. Since the current patent system allows these companies to patent ill-defined concepts as if they were fully-developed devices, without disclosure, they naturally take advantage of them. I've written two complete software patent applications, under guidance from patent lawyers, and neither one included detailed source code listings. Snippets, flow charts, and block diagrams. And neither was for anything even remotely original. It's ridiculous.