I'm probably going to get ripped for this suggestion from the squeamish types but I'm going to propose it anyway.
First, I wonder how much money is being spent with several countries' worth of naval ships patrolling the waters off the coast of Somalia? Is it really necessary? What do we really want to do?
The answer of course is to stop it. Maybe its not possible to stop all of it but there needs to be a deterrence. I haven't seen anyone proposing a solution but a simple one exists.
Use snipers. (more after the bump)
I don't know diddly about sniping, the military, weapons, and how feasible it would be at open sea but I still believe that a team or two of one or two-man sniper teams working eight hour shifts (16 hours/day) on top of a cargo container ship or Oil carrying vessel has a distinct advantage over any small boat armed to the hilt with small arms.
You've got a slow moving freighter or other against a smaller, faster moving power boat. No contest. But the approach can be seen for miles. IMHO a sniper should be able to take out a couple of men on any fast approaching boat from at least a couple of hundred yards. Based on video footage that I've seen the pirates are approaching in the type of boats that almost requires the person piloting the boat to stand up, but even if they were sitting down, they are vulnerable. Believe me, if you were approaching a vessel and your captain/pilot and replacements get shot two or three times in a row, you either stop trying to pilot the boat, shut it down, or turn around.
The height of the ships alone is an advantage for sniping. Lightly armoring the snipers by placing them behind steel walls with slots for them to shoot from should be easy. In one example of video footage I saw an outboard engine on the boat. A bullet through that engine will do the job just as well, possibly stranding the pirates for an easy pickup by a navy.
There is no way that navies can cover all the square miles of vast ocean, and it is very, very costly to patrol or escort these ships and waters. But thanks to the miracles of capitalism and free enterprise, I'm sure the Saudis, Exxon or whomever can afford a couple of mercenary snipers even if they paid each one $100k per year.
Worst case. Use military snipers. Small two man teams spread across various cargo ships, randomly,kind of like how the Federal Air Marshalls patrol and deter should do the job.
If enough pirate ships get stopped, they stop attacking, simple as that, right? What am I missing here?