My Table of Contents shows different spacing between lines when a chapter has sections and subsections and when it doesn't. I need the same spacing above ad below every chapter while keeping sections and subsections single spaced in the ToC. I'd appreciate any help.

• Can you post a minimal example? Without it's pretty difficult to help you since you may have loaded a package which exactly does what you don't like. – Uwe Ziegenhagen Dec 23 '12 at 18:14

The following works for the default document classes that support \chapter (report and book):

\documentclass{report}
\makeatletter
}
\renewcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
\makeatother
\begin{document}
\tableofcontents
\chapter{A chapter}\section{A section}\section{A section}
\chapter{A chapter}
\chapter{A chapter}\section{A section}\section{A section}
\chapter{A chapter}\section{A section}\subsection{A subsection}\subsection{A subsection}
\chapter{A chapter}
\end{document}

The solution does two things. It...

1. ...modifies \l@chapter - the macro responsible for setting the chapter-related entry in the ToC - to use \addvspace instead of the "traditional" \vskip. This is just to ensure that there's no "doubling" of vertical spaces when adding more \vspace.
2. ...uses \@makechapterhead to insert a vertical space (again, using \addvspace) into the ToC so that there's a space after the ToC entry.

Using a similar approach to the solution provided in Add dots in table of contents for parts for LaTeX document, adding dots to the chapter-entries in the ToC is possible via

\renewcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\xleaders\hbox{$\m@th % Added \xleaders \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfil\nobreak\hb@xt@\@pnumwidth{\hss #2}\par