Visio is the default business diagramming tool in most organizations. I've used it off and on for after-the-fact documentation but never to create the actual model. The newest version of Visio (2010) included a slightly remodeled UI and some tools to help with choosing colors (surprisingly, that is very useful to me).
It's Visio, it works well for the small model I tested with (< 50 table) and had no stability issues.
Visio Professional: ~$400.00
- Logic Modeling: No
- Physical Modeling: Yes
- Reverse Engineering: Yes
- Forward Engineering: No
- Note, there is a plug-in created by Alberto Ferrari and hosted at CodePlex which does a non-comparing forward engineer of the DB
- Sub Models: Yes
Once you get past the Visio UI quirks, documenting an existing system using Visio is a breeze. Yes, extra clicks are required everywhere. Yes, the relationship link points are limited and not fun to reset.
The initial arrangement of the entities is pretty bad, but after using SQL Power Architect and MySQL Workbench I can appreciate that the layout is not awful.
Microsoft has a team of writers maintaining the help system and there are several good web resources on building ERDs using Visio so there is plenty of available documentation.
The lack of a built-in forward engineering function can be worked around (as noted above) but it does not compare to the actual database.
I have used Visio to document data models in the past and I maintain that it can do this at an acceptable level.
Also Visio can be a good way to get down some initial thoughts on a model if that is all you have available to you.
I do not recommend using Visio for ongoing, iterative data model development. Forward engineering without a comparison function makes this work too awkward.