A make file is like an executable in windows. It has a preset list of commands to run in order to "make" your application work and it can manage your dependencies so you don't have to constantly respecify them. The alternative to a make file is running the application in a console.
The problem with running applications in a command line is that you may need to repeatedly specify all the project parameters whenever you want to run an application. Another downside to running an application from the command line is that you have to open the terminal/dos in order to run your application. Most end users of you application are not going to want to have to do this. Having a makefile makes starting up your application as easy as clicking on a makefile.
The main difference between a makefile and other files like .exe is they are platform independant and can be run in multiple operating systems.