You have two options, depending on whether you are working in exact or inexact arithmetic.
For exact arithmetic, Billy has mentioned the Jordan decomposition: in the decomposition $\mathbf A=\mathbf C\mathbf B\mathbf C^{-1}$, $\mathbf B$ can be diagonal if $\mathbf A$ is not defective; i.e. $\mathbf A$ has a complete eigenvector set (and thus the Jordan decomposition and eigendecomposition are equivalent in this case). If $\mathbf A$ is defective, $\mathbf B$ will have the form of a Jordan block:
$\mathbf B=\begin{pmatrix}\lambda&1\\0&\lambda\end{pmatrix}$
where $\lambda$ is the sole eigenvalue of $\mathbf A$.
In inexact arithmetic, the computation of the Jordan decomposition can be unstable. (See this article for a discussion of the difficulties.) The appropriate decomposition here is the Schur decomposition: here, in the decomposition $\mathbf A=\mathbf C\mathbf B\mathbf C^{-1}$, $\mathbf C$ is chosen to be unitary, $\mathbf C^{-1}=\mathbf C^{\ast}$. $\mathbf B$ becomes triangular.
If $\mathbf A$ is real and the eigenvalues of $\mathbf A$ are all real, then this decomposition can be done with an orthogonal matrix $\mathbf C$ for real $\mathbf A$. But if the two eigenvalues are complex conjugates, one must necessarily use a unitary $\mathbf C$ for decomposing $\mathbf A$. The best one can do with an orthogonal $\mathbf C$ in this case is to have $\mathbf B$ in the form
$\mathbf B=\begin{pmatrix}\lambda&u\\v&\lambda\end{pmatrix}$
where $\lambda\pm i\mu$ are the eigenvalues of $\mathbf A$, and $uv=-\mu$.