UML modeling provides an anchor for your project, when you have your first meeting you set up the model of what you are going to create and you build the UML, then as time goes on you dont drift as far from what the original project was. It makes it easier to keep on track of your project as you move on to the different features that you need to build.
Specifically as a programmer it helps me make sure that the features I am building are the features that are really going to help the client and not the features that I think would be cool. As a Manager, it helps me to look at the over all project and to better estimate dead lines so we can make sure we are hitting the milestones of the project. As well as it help the manager keep his guys connected with the over view of the project.
With QA it is really helpful to know what you are testing. The code will always say what it is doing, but it very well may not be what the feature is supposed to be doing. Using UML QA has a place that they can look and see exactly what the features should be doing, they are then able to more effectivly make sure that the product is working the way that it needs to be.