I believe you'll find that argument against software patents is threefold - firstly, that they have a far broader reach than most patents, secondly, they are obvious to practitioners of the art, and thirdly, the lifetime of software patent is often significantly shorter than items in the physical world.
I'll touch first on the obviousness - I think it's likely that patent examiners are not software developers. Nor are they likely to be mechanical engineers, or experts in other fields. For some reason though, software is a black art - lots of people seem to intuitively understand mechanical devices, yet those same people look at computers and cry "too hard". As a result, patents that really are obvious to a programmer can be approved - it's on a computer therefore it must be new and complex.
For the other two points; consider, for example, a patent on a new 6 cycle engine - which happens to be perfect for large, low RPM equipment because it produces far more torque for some reason. The creator works in the
Now someone comes along and builds on (or around) that patent for a revised 6-cycle engine for ships. No (minor?) infringement. New patent. Technology progresses. The patent applies for, I think, 17 years? But creating a new type of engine probably takes 5-10. So the patent is between 1.7x and 3x the development cycle.
The equivalent patent in the software world not only applies to all software in all fields of endeavour, they all seem to be incredibly broad compared to physical object patents, and I contend that they effectively last far longer. The software patents I've seen boil down to "software does a common task in any number of ways" - and because the patent system doesn't require a working model, it's a case of "think of a way it can be done and it's patented". So now because I've needed to solve a problem, and I have a patent on all the ways I can think of to solve the problem, no-one else can write software that solves the problem. Also, that 17 year life of the patent is anywhere from 8x to 17x the life-cycle of software (versioning estimated at 1-2 years). With software you can often easily produce a new major version in a year - you can create something completely new, on the back of last year's efforts, in as little as a few months.
I guess the equivalent in the engine example would be the ability to patent "a device, with any number of combustion chambers, powered by a fuel composed of an element or compound, or collection of compounds, with zero or more extra components, where the fuel is burned". And yet I don't recall seeing patents like that.
Don't get me started on companies patenting gene sequences - unless they're claiming to have created the gene sequence from scratch (i.e. stringing individual bases together), they didn't create anything. They may have FOUND it, but last I checked finding != creating.