The biggest problem with software patents is a limited solution space. For a poor example, implementing text rendering on a graphics card is something which you can very easily formulate three attempts and measure which one works best against common criteria (sharpness, speed, etc). Once the best solution is patented, it's very unlikely anyone else will be able to use this technology (particularly in situations where the patent is a small part of a larger package, say, an operating system) and they will be forced to settle into the second best-fitting solution.