I'll leave the specific details of MS Project's resource leveling to someone who deals with it. (I and my clients use Critical Chain add-ins to Project to do resource leveling.)
Making a promise on a project without leveling resources is a very dangerous practice. Projects are made up of chains of tasks that are linked in time by dependency. The obvious dependencies are the hand-offs of outputs of one task that become inputs for other tasks. The other major dependency that all tasks are subject to are resource dependencies. The same way that tasks have to wait for handoffs from predecessors before they can start, they may also have to wait for the resource that will use those handoffs to perform the task.
When there are more tasks than available resources planned for a span of time, those tasks need to be "leveled" so that you are not making promises based on having more resources than you actually have. This provides the basis for a rational promise for the project, a clearer indication of what tasks resources should be working on when faced with a choce, and the minimization of multi-tasking across tasks, which will even further drive out the delivery of the project.
Someone correct me if I'm wrong, but I believe that in the CPM world of MS Project, the use of the leveling tool takes place within the ability of a previously identified critical path to absorb the movement of non-critical tasks. On the other hand, in the Critical Chain world, we take into account the resource dependencies BEFORE identifying what is critical.
I'm curious. In the past, when you didn't use the leveling feature, how did your project resources handle contention for their attention across tasks?