While docbook can be good for a small setup it tends to be overly simple when working with large documents. I'd suggest instead using DITA
as it allows for the types of referencing mentioned and also allows for pretty extensive reuse of content. Like docbook it can be transformed into most formats you may need but gives the added bonus of being able to break it up and re-organize the book structure dynamically (this is really how technical writing should be).
A good resource for how to use this powerful language can be found at http://dita.xml.org/
. As the parent suggested <oXygen/> for XML
is a great editor for this kind of work and comes with a DITA edition.
Also as the parent suggested svn is really the best way to go for revision control but a database like eXist
can be a great resource management tool for your content while your working with it.