I think that, rather than removing software patents altogether, there has to be a rethink of what is 'patentable' (Finger movements? Probably not patentable. An entirely new protocol for transferring data? I'm fine with that being patented.)
Aside from that, I believe that there should be a "6 months to defend" clause attached to software patents (i.e. if you don't file a patent dispute within 6 months of another company publicly releasing something that "infringes" your patent, then you lose the right to defend it). That would solve many of the "patent troll" issues, and to get a large chunk of the rest of them, the laws about acquiring patents in a buy-out/merger should be examined.