Well, try man make for details, obviously; not really the most insightful thing for the big picture though.
Here, I'll post a couple of simple makefiles from some assignments for examples.
Um, off the top of my head, the basics go like this:
The makefile should just be called "makefile" (any capitalization is OK)
If you just type "make" the default target is "all", otherwise you can type "make sometarget" to be more specific.
Each entry is of the form
<target>:<tab><required files>
<tab><command>
<tab><command>
...
The way make saves you time is by tracking modification dates on files - if a file is older than some target it is required for, then that target needs to be remade, otherwise that target is already done. It basically automatically figures out the minimum amount of recompiling you can get away with (as long as you correctly tell it what files are involved in any compiling you do).
These examples use C source and gcc for the compiler, but you can use make for anything - java code, gnuplot rendering, recipe collections - you get the idea.