A symmetric matrix has orthonormal eigenvectors and real eigenvalues. However, there are many kinds of matrices that have orthonormal eigenvectors and complex eigenvalues (for instance, circulant matrices). What are the necessary conditions for a matrix to have orthonormal eigenvectors?
The necessary and sufficient condition for a matrix to have A COMPLETE SET of orthonormal eigenvectors is that it be normal. A matrix $M$ is normal if and only if $$ MM^*=M^*M$$
For real valued matrices, symmetric and skew symmetric are some examples. Orthogonal matrices (thank you littleO for the correction) are another example.