CSS is so much more flexible that tables. Tables give you a very structured block format, but css allows for all different variations of positioning and properties. You can set so many different attributes to each different section (div/span) of a site using CSS.
CSS also tends to load faster and be more efficient. You can reuse a layout or specific attributes across all pages of your site, as CSS stylesheets are imported rather than being internal to each separate page.
As a rule of thumb, I tend to use CSS for all structural and positioning aspects of my sites. Anything you can do with tables can be recreated (most likely easier) using CSS. The only exception for me would be is if I want to display a “true” table of data, etc.
WordPress styles use all CSS for the page positioning anyway, so why not take a look at the theme source files and learn CSS? It is very handy to know.
[Sig moderated — see the forum rules, section E]