Error State is there to pin point the location where error occured in your code. Say if you have a 1000 lines long stored procedure and you are raising errors in different places, Error state will help you to tell which error was actually raised.
Error Severity gives information about the type of error that occured,
upto Severity level 10 are informational messages.
11-16 are considered errors that can be fixed by the user.
17-19 are considered Non-Fatal errors in Sql Server Resources, Engine and other stuff .
20-25 are considered Fatal Error which causes sql server to shut down the process immediately.