What is SELinux and what are the advantages of using it? Why does Linux need another layer of protection?
This question is rather generic and broad for Unix.SE - but I'll give a broad/general response. If you want to know more specifics, ask specifically about those.
SELinux helps protect you against bugs in software. You need it because your software is millions of lines of code and, no matter how good the software engineers are, they're going to contain bugs. SELinux operates as a bit of a middle man and makes sure that the software doesn't run as 'you' and thus doesn't have all of your permissions.
Allow me to quote...
In short because SELinux can help protect you from bugs in applications. Most people treat applications as user surrogates (e.g., "I go to google.com" not "I tell my browser to go to google.com and it does so on my behalf"). However applications, especially the desktop applications we all use, come in at millions of lines of code. Without knowing what those millions of lines of code do there is no way to know if an application will really do what you tell it or if it becomes malicious because of vulnerabilities. With SELinux you can treat the applications you run differently from yourself thereby limiting what an exploited application can do.
Source: SELinux Wiki
Note: That link is actually pretty thorough and will answer other general questions you may have.