We had a requirement to Obfuscate our client (We have Swing based think client) binaries. Most of the resources on Internet recommended that Java obfuscation is waste of time. I disagree with that. I would say that Obfuscation useful as security mechanism as well as it helps in protecting your Intellectual Property (IP). A determined skilled attacker may be able to overcome this hurdle, however lot of naive onlookers will be stopped at this blockade.
We were also looking for a good Java Obfuscating tool and found that not many available in the market. Finally we have decided for Zelix KlassMaster ( http://www.zelix.com/klassmaster ). I found it very good and priced reasonably.