From CSS Discuss
Two consecutive vertical margins collapse if there is no border or padding that fall between them. The result is a single margin area, which is a sort of "no man's land" -- positioned content within the blocks may appear to behave oddly.
Believe it or not, collapsing margins has been around for a long time and is what you expect to happen in many cases -- you just take it for granted. Read Eric Meyer's Uncollapsing Margins for an explanation of what margin collapsing is, why it exists, and how to stop it when you want to.
Here is a practical explanation, with examples, by Andy Budd:- http://www.andybudd.com/archives/2003/11/no_margin_for_error/
Here is an example with even more illustrations: http://www.researchkitchen.de/blog/archives/css-autoheight-and-margincollapsing.php
and here is the CSS2.1 specification: