breaking lines in a matrix/array environment

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\[\begin{bmatrix*}[r]
   a + b &    e + f \\
{}+c + d & {}+g + h \\[6pt]
   i + j &    m + n \\
{}+k + l & {}+o + p \\
\end{bmatrix*}\]
\end{document}

enter image description here


To change an operator from unary to binary, put an empty group before it, e.g. {}+c+d. You could use the \phantom command to get the vertical alignment right: \phantom{{}+{}}a+b see section 3.7.1 of the Not so short introduction to LaTeX.