It's one of the reasons that I never feel really comfortable writing HTML, there seems to be no really elegant way to format it. (I'm used to C/C++/Java which generally can be laid out elegantly)
Cue a 'how to format HTML' flame fest! :-) (I hope not)
The biggest problem with any HTML formatting structure is that the browsers ... (by which I mean usually IE 6&7) will often interpret random bits of whitespace between elements as ... well whitespace between elements. (I've had lots of problems with whitespace between Image and Map tags causing gaps on pages in IE). So no matter how well you might WANT to format your HTML, you might not be "allowed" to.
JT