JMeter is being used as secondary tool at our organization, in my team its primary tool though. At the organization level we use NeoLoad which is more user friendly compared to JMeter. JMeter helped us to test our services in a cost efficient manner. We deal with millions of SOAP messages and JMeter helps us to distribute and measure performance of all those services.
JMeter needs to improve the interface and the start and stop process; several times it just hangs when you see an issue and stops testing in between. There is no impact but user has to reopen JMeter as the earlier session still hold resources.
More powerful reporting and listeners, compare previous test and current test results. Loadosophia is best example of it, including BlazeMeter which are paid versions.
On the negative side it's difficult to always trust results, in some scenarios JMeter efficiency is poor and you have to use workarounds to fix it. Like Queue, JMS Messaging are not handled correctly and the final numbers are not always correct.
I would always prefer JMeter for webservice automation over others; it does have some issues with UI based performance testing but those can be managed using JUnit and Java. Using JUnit and Java makes it some what tricky for new users to understand and that's why they go towards a more user friendly tool. JMeter support is another issue, you have to completely depend on the community to get help.