You can look at the "Notebooks and Documents" link in
Mathematica is better suited for formatting screen documents than print documents. Even then, it is sometimes difficult to control. I don't know of any built-in contents or indexing functions, but theoretically you can write them. There is hardly anything that Mathematica cannot do, but some things it does easily and others only with difficulty. Formatting is often difficult. It depends on whether Mathematica's standard formats and formatting options suit you. (The Mathematica tutorials published by Wolfram look nice.)
There is a "Show Page Breaks" menu option under "Print Settings" in the "File" menu.
CellTags could probably be used to create an index, if you can figure out how to get the page numbers.
You could probably get a table of contents based on cell type, again, if you can get page numbers. The print Mathematica tutorials have a TOC and they seem written in notebooks; of course the TOC might have been done by hand.
I'd recommend TeX. ConTeXt and LaTeX have built-in contents and indexing functions. They can import images generated by Mathematica.