RE: <table> still required for layout though
Technically he's got a point. Use DIVs and CSS as much as you like there is no way to have 2 DIVs the same height (without defining that height).
For example; you've got a menu on the left and content on the right with different coloured backgrounds - you want them both to be the same height no matter which has the "tallest" content.
Currently 2 columns in a table do this perfectly.
The only way to do it with DIVs is to put both in a "container DIV", give the container the background colour of say the "menu" and the "content" another background colour. Position the "menu" absolutely and give the "content" a "margin-left" the same width as the "menu".
Now, to make IE display the same as everything else you have to ensure there's no padding on the "menu" since IE pads opposite to the standard (in rather than out). Then nest another DIV inside that menu (width: auto) to sort your padding out. Still with me? It does work and there's less markup involved but it feels like a dirty hack and uses a lot of CSS.
However - this is all resolved in CSS3, so this is not really an HTML issue at all.
Anyway - after having read the HTML 5 spec... it looks like XHTML2 without the modularisation (forms for instance rather than moving to xForms). There is actually some good stuff on the way but personally, I think I'll just move to XHTML2/CSS3 when they've matured.