Having seen examples of how UML should be run, I can see the benefit for medium to large applications.
Start with your use cases - break them down to scenarios - create first draft interaction diagrams of the scenarios - create first draft class diagrams - polish diagrams iteratively and then write some code. It does have a flow, but it's only really useful if you follow that flow.
However, I never actually got to work on such a project using UML, so I have no idea whether it actually works like that

The tools to support UML however are a catastrophe, I've not seen any of the super-expensive tools, but anything less than $1000 is pretty much useless.
IMHO, if they could strip out some things from UML, and create a half-decent tool it could be useful, but at the moment it's almost a hindrance.