Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
There are some freeware UML tools, ArgoUml or something. You have to be careful though (I used it until it deleted a Use Case specification); although there is a commercial version.
Together is pretty good, especially if you're using java, as it allows you to develop java classes. (C++ is more difficult coz it often includes templates and C functions which screws everything up).
If you want diagrams, Visio is fine; all the projects I've worked on have used Visio with diagrams being done on an adhoc basis. Usually there's no budget for these kinds of tools.