Honestly, although Visio is an OK tool, I don't think it does that great at UML and ER diagrams. I prefer a tool designed to create those types of diagrams, and for UML, I especially like it integrated into my IDE, especially for reverse engineering UML diagrams from existing code.
For project management-related diagrams and workflow diagrams, Visio is probably better. Although if you had to use a Microsoft produce for project management, I would suggest the appropriate use of Word and Excel alongside Project and Visio when necessary. And for straight up documentation, nothing beats exporting the diagrams from various tools and putting them into a Word document (and then exporting as PDF to capture a snapshot version of the document).
As a disclaimer: I've heard that Visio 2010 has a good number of improvements made over past versions of Visio. The last version I used was 2005, I believe. I will be installing both Visio and Project using my MSDN Academic Alliance access when I get back to school.