We know that not all matrices can be diagonalized, but all matrices can be block diagonalized (with just one block) How can we find a similarity transformation leading to block diagonalization with the greatest possible number of blocks?
Every matrix with elements in $\mathbb C$ has a Jordan Normal Form. The transform in the canonical basis will have blocks of sizes equal to the sizes of the generalized eigenspaces of the matrix.
The Jordan blocks have a very particular structure:
where the $\lambda$ is an eigenvalue for the matrix. It should be possible to prove that the block above can not be further reduced (although I have no proof ready in my magic pockets right now).
In the case you want real elements everywhere you can take a look here