I would advise you to write two documents :
One technical description : Where you'll write all the technical stuff, from the database structure to the protocols description if needed.
One functionnal description : Where you'll write all the functionnal stuff, from the purpose of the project, to the description of each functionnality of your application.
Each document will target different people, some being very good with technical details and others being very good with app usability.
When I want to be sure that my technical and functionnal documents are useful, I write them thinking "If I die tomorrow, I want the people who read these docs to understand the app in every way, and I want them to be sure how to do it, just like I would like it to be done". I eventually end up going deep in the application details, but it's usually a good idea. I noticed that the more time I spend writing these docs, the less phonecalls I get later, and the less bad surprises I get once the app enters the testing stage.
Cliffnotes : Two docs targetting two very different audiences. One being very interested by technicals tidbits, and the other having no knowledge about technical tidbits. Take your time, explain things, make schemas and diagrams (if you are sure you are good at these), read your docs again and again, and you'll have a solid documentation.
Edit: Word (or any alternative word processor) is usually good enough to make that kind of documents. Using UML is not always a good idea, especially if you're not good at UML (no shame in it :).
One little trick I find useful : Using a WYSIWYG web-pages editor can help you make quick-and-dirty pages prototypes, that you can insert into your docs. I even went as far as re-installing VB6 on an old computer, to make a quick-and-dirty windowed app prototype for that purpose. It works great and takes very little time.