1. Information that can help a technically engaged person debug a problem.
2. Information that can help a user of the system understand what they have to do the overcome the problem.
Since most error messages are created by people responsible for debugging the system they tend to be of the 1st class. There has to be a way to provide different information based on who is getting the error.