OK, 50 points.

Is the header a block?
So, the "body" tag is the "block" of the whole page?
Then, is a paragraph a block? We don't put paragraphs in other paragraphs for example.
Headers (h1, h2, etc.) are block elements, and a paragraph is a block element (and I guess body is a block element, and the head tag is irrelevant since it's invisible be cause it's implemented as such). A paragraph cannot go inside another paragraph according to the DOCTYPE. And what would it mean anyways (read: semantically)? I didn't consider these non-semantic uses. You also can't put headers inside paragraphs. So not all blocks can be in other blocks. Divs can go in divs though. I generally think of "blocks" as only divs.
So, rethinking about the original question after some new thought,
most block elements cannot go inside other block elements except if it's a div (actually, any tag that can go inside the body tag, can go in a div tag). There's also other situations like an li inside a ul or ol, which are all block elements.
Wikipedia shows the block and inline elements.
A side thought, because of the way HTML was defined when you do,
HTML:
<p>Some text in a paragraph
<p>Some other text inside a paragrpah
The second p starts a new paragraph and ends the first one since it's not required to close paragraphs (though of course you should) so it ignores attempts to place one inside the other.
Are you saying a DIV is mainly a way to tag a section/ block/whatever for CSS purposes?
Yes, pretty much. They can be used to add semantic meaning to the document as well, but mostly it's about dividing a page and making it easier to style things with CSS.
Hopefully I didn't add to your confusion, I didn't fully think out the original question when I posted.