The "Dummies Guide to ..." series is well reguarded, as are some of the others.
Best advice I've ever received in this area was Know your Audience - and write to their needs.
Don't write the manual you need. Write what the end users need.
Put yourself in their shoes and think about their goals. Think about the situations they'll be in, and what they need - and deliver that.
Hint: Their goal isn't to use your software, it's to get their job done - write in small chunks, and show users how your software can make their life easier.
A real life example:
One of the deliverables on several of my recent projects has been a Support Guide - detailed information for the Help Desk and Infrastructure, all about how to look after the system.
A narrative style is useless for these support guides - because no one will never sit down and read it. Busy people just dont' have time.
I broke the document down into 3 key sections: Deployment, Symptoms and Solutions.
Deployment shows how the system should be deployed - which piece on which machine, how they communicate (down to port numbers) and where to find configuration and log files.
Symptoms lists different ways that users might notice the system is not working as expected. This is set up so that they can just look up the user complaint and get some guidance. Under each symptom, a list of Solutions to try.
Solutions lists different procedures, how to check configuration, test operation, isolate problems, and so on.
The document is highly repetetive - so that the end users don't have to dive around from place to place to find what they need.
This structure is very very different to my first drafts, but has proven to be useful.