Using tables for layout was a revolution for web design, but that was way back when tables were the only possible way of doing any layout at all. Today there are alternatives.
Tables still works for layout, but they are not nearly as powerful as table-less CSS layouts. There are a few things that is easier to accomplish with tables, but there are a lot of things that is very hard or completely impossible to do with tables that is very easy to do with CSS.
Originally tables was only intended for tabular data, i.e. values that you wanted to display in a grid, where the grid adjusts itself to how much content there is. To use tabled for layout you first have to defeat this default behaviour, which of course means some extra code.
Generally table based layouts means more code than non-table based layouts. Also, with non-table based layouts you can put more of the code in cached CSS files, which means even less code in the actual page.