The margin (and padding) has a shortcut declaration that lets you set the top, right, bottom, and left sizes in one single declaration (rather than setting margin-top, margin-right, etc.). If you set just two sizes, it defines the top and bottom, then the sides.
The following declarations all have the same result:
As for what "auto" does, it just tells the browser to figure it out. You would usually do this to make a block element centered horizontally inside another, for example.
margin: 15px auto; /* top/bottom, then right/left */
margin: 15px auto 15px auto; /* top right bottom left */
/* The long version... */