rocknbil - 4:34 pm on May 16, 2011 (gmt 0)
"Best for search engine" is not real relevant, there are many old table-based web sites that do well.
Tables must completely render, top to bottom, from <table> to </table> in your source code before the browser will display them. I doubt this has much effect on search engines because they slurp up your content without rendering - but this can and often does have an effect on how fast they render for your users.
However, if you want to build pages that give semantic meaning to all devices rendering it - which includes search engines - you use semantic markup to describe the content.
This means we use "divs" only to divide page sections up and meaningful elements everywhere else. Content is a series of paragraphs. Navigations are a list (ul) of links (or <nav>, HTML 5.) Tables are used for tabular data, a display of two dimensional intersecting data.
This also has impact on accessibility as well - a page reader will expect tabular data in a tabled layout and it leads to very confusing interpretation of your page because it reads across the column in rows. It gets even works with nested tables, which usually go hand in hand.
Div, span, <br>, and others are all empty elements. They have no semantic meaning. Using them indiscriminately is as bad (in terms of semantics) as using a table for layout and leads to div-itis. :-) When you go to add any of these, ask the question: will this describe my content or is a <p>, <ul><li>, or other element a better description of what it will contain? Chances are very good you can, and can style it any way you want.