It is necessary if you want to be able to allow capitalism to judge the value of an idea, to make it possible to trade ideas with each other, and patents allow you to do that.
Patent companies are also fine - I have no problem with companies thinking up clever ideas and selling those ideas to people in a position to use them.
What I do have a problem with is people using patents to block ideas. Submarine patents, overly generic patents and vague patents aren't part of making ideas tradeable. If your idea isn't specific, novel, innovative and marketable, then society should have no time for it.
If you want to patent "an IDE that happens to be gray", or a "button with a picture of a turtle on it" then that shouldn't meet the bar - it's not innovative enough.
If you want to patent "some invention that might perhaps allow users to interact fluidly with the web", that should fail - it's not specific enough.
Submarine patents should be illegal too - you should be required to bring a patent lawsuit as soon as you become aware of an infringement or the patent should become invalid. You shouldn't be allowed to wait for them to make lots of money before you sue.
And finally, you shouldn't be allowed to patent "let's all be kind to each other" or "the manifesto of the republican party in the USA", because they're not marketable.
Once you fix those big problems, I think the patent system would go much further towards helping people be innovative.
My argument is not in favour of our current system of patents. It's in favour of patents in the abstract sense of being able to protect innovations and buy and sell ideas for money.