Put simply, it allows you to listen for "events" and assign actions to run when those events occur.
In Node.js, it's an alternative to deeply nested callbacks. A lot of Node.js methods are run asynchronously, which means that to run code after the method has finished, you need to pass a callback method to the function. Eventually, your code will look like a giant funnel. To prevent this, many Node.js classes emit events that you can listen for. This allows you to organize your code the way you'd like to, and not use callbacks.
Many objects in Node.js allow you to listen to and emit events because they are a type of EventEmitter.