Doxygen works best for me too. With the addition of pages written purely in markdown (see Markdown Support), writing guide-like tutorial pages has become easier. You no longer have to include header files without real code in them just for documentation, you can now just define a directory for doxygen to search for pages and write your tutorials there.
Doxygen also has a custom markdown flavour which makes it well suited for software documentation. All the doxygen commands work in markdown too and you can even write the name of a class and doxygen will link to its reference page. This has simplified my documentation writing workflow and not having to write links to every class just feels good.
In summary, writing my documentation in doxygen works well and the nice side effect of having my docs alongside the code in a repository is always a plus for me.