I can highly recommend Software Ideas Modeler.
- UML
- Data Flow Diagram
- Flowchart
- Robustness Diagram
- CRC
- Entity-Relationship-Diagram
It can create models out of C# and VB.NET Code. It can also generate code from models for a lot of languages, including C#, C++ and VB.NET. It's free for non-commercial use.