Ideas especially in the field of software design should never be patented IMHO. Algorithms, hardware definitely but not the idea.
For example, what is the point behind Apple patenting multi touch gesture technology? I mean why? (FWIW I am an Apple fan).
I remember somebody suing twitter for they have the patent for an ecosystem that allows celebrity to come together and do some stuff in an "online" environment. I mean wow!
To all such people, step back and think what if the guy who made chair had patented it. What about wheel, fire? I know this sounds crazy but seriously why should ideas be patented. I could genuinely have the same idea without having seen yours (idea) first!
"The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying." [1]
Whereby this again now is not about the idea but the implementation.
But in many cases, this is also right.
See Amazons 1-Click as an example. I haven't really looked up the implementation details they describe in their patent but I guess it mostly follows the straight-forward implementation of this.
It's worth noting that while the USPTO granted the patent (and even after multiple reexaminations still granted parts of the patent), the patent was never granted at all in Europe: http://en.wikipedia.org/wiki/1-Click#Patent
This applies to ideas too I think - if I have a general 'idea' of how to perform a task, that can be expressed as an algorithm which I then implement in [whatever language]; I could then be unwittingly violating a patent on the idea.
Part of it is IP self-defence. If a big tech company does not have a corresponding patent portfolio, it may trigger legal action from likewise big patent holders. Usually someone like IBM already has related stuff to whatever you're doing and building up a portfolio is just making sure you may have something to make counter-claims. It may not always work (see Oracle vs. Google), but it's expensive to sue and the stakes are very high.