Use UML.
I use Enterprise Architect, and not only does it make great looking documents that you can use in your design document, but you can round-trip engineer your application and keep everything tidy and easy to find visually.
You can use UML for all sorts of things, like interface design, use-case diagrams, project management, database design, network diagrams, to name a few.