Disclaimer: the below was written regaring CSS2, not CSS3.
Following are thoughts on doing table-less layouts using CSS, from the perspective of a coder who has been watching web technologies come and go as long as there has been a web. These are just highlights. For more on the topic, Google.
CSS goes a long way toward separating content from presentation. On this page (at the time of this writing) the code for the left nav is near the bottom of the HTML code, but it displays high on the of the page. That's good for people who are experiencing the site through audio readers, because they don't have to listen to the navigation before they hear the page content. It also improves how this web page works with search engines.
It would be nice if that support went further. HTML pages are still quite full of layout information (hierarchies of DIVs, mostly.) For information that doesn't change from page to page, it would be nice if instructions regarding doctype and div hierarchies could be stored in the stylesheet. Then web pages could truly just be content (chunks of text flagged "body", "pullquote", etc.) with a pointer to the layout file.
The only options for doing that now are a very limited layout, or go to AJAX. Browser bookmarking issues keep me from the latter, and the former wouldn't satisfy me.
Web sites rarely need tables for layout. CSS is usually good, whether you use tables or not. There are web sites which should use tables for layout.If you find yourself avoiding a technique, make sure you're not doing it out of ignorance. Become proficient with everything.