Hola, pues mira que diagramas hay miles, pero debes saber cual usar el estandar y el hasta ahora mejor es el UML(Lenguaje de modelado unificado) con este puedes hacer tus diagramas del software que estes realizando, el UML te sirve para poder ver tu sistemas desde perspectivas diferentes de este modo puedes evitar varios posibles errores, y mil y una cosas mas.
En resumen el UML es el que te ayuda a realizar los planos de tu software. Ahora Visio es una herramienta y bonita en el 2003 puedes encontrar una categoria Software y ahi dentro encontraras UML ahi ya puedes comenzar a modelar.
Pero Visio es muy cuadrado, es decir es muy cerrado, no te da libertad, cosa que el UML establece. y con Visio en ves de modelar tienes que aprender a modelar al modo de visio, por esta razon segun mi punto de vista no es muy bueno, pero de modelar si se puede, ahora podrias pensar en otras herramientas como en Rational XDE esta es una herramienta poderosisima, se integra completamente al IDE de Visual Studio y te ayuda en la creacion del codigo, es completamente amigable, te acepta todo tipo de estereotipos que quieras crear y restricciones, y aparte de eso que se integra hasta al lenguaje ya que en cierta forma te ayuda a modelar porque tiene unos wizards muy buenos, esta herramienta si vale la pena probarla.
Visio de entrada en su version normal solo te permite modelar y hacer ingenieria inversa, en su version architect recien te ayuda con la generacion de codigo, asi que empezando de ahi te daras cuenta que tan cerrado es, si bien Visio es bueno para otros diagramas, pues personalmente yo piendo que para UML no es la mejor herramienta.
Ahora tu veras que camino tomar, puedes encontrar muchos manuales colgados por internet (la mayoria en ingles) pero busca en Google.
Suerte!