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.