Enumerations are lists of discrete values. For example if you were creating an application dealing with automobiles, you might use an enumeration to store makes and models of cars. Platform automatically validates that values written to enumerated fields on models adhere to the list of available values.
The advantage to enumerations is that it keeps your data clean. Consider a sales tool where a sales person can enter the make and model by hand. Very quickly you have dozens of variations on Ford Mustang:
Finding a sales order on a car becomes very difficult. If you define an enumeration on the Make, you get clean, consistent results. Enumerations are reference-able within classes as well as UI components. So the same sales order entry system with enumerations forces a user to pick from a list. The data is always predictable.