There are levels to this question. I'm sure most of us that run web apps know to some degree what our users are doing, but, if you have the need, you can find out in real detail what they're doing and in what order.
Obviously there are paid tools, entire companies that make this their business such as SessionCam. And what they do is great if you have the budget. But what about for those of us with slightly smaller wallets?
ga('send', 'event', 'MySuperPage_OKButton', 'Clicked');
If you add the above line to the onclick event on a button on your page then, in your GA analysis you'll be able to see how often that particular button is clicked. And, really, you can track everything that the user does, every single key press, click and page load.
Well whoop-de-do you might say. That's a lot of data, but what use is it? Well, imagine you're adding or testing a new feature, wouldn't it be good to know how often it's actually being used. Or you may need to keep an eye on the volume of usage for a particular feature. Or your management may want to understand better how far through a process people are getting before dropping out. The point is that having more data is very rarely a bad thing and the development cost of adding this to an application is surprisingly low.
The question really is why you wouldn't do something like this for an application.