The people who recommend against tables for layout using separation of content and style as justification are obviously mistaking html for content.
In my opinion, if you can generate the html programmatically, then it is no longer content but rather a result of whatever presentation tools you are using. I understand that tables could result in poor rendering by certain browsers, and possibly confuse accessibility functions for people who can't read, etc. but those should really be alternate concerns. If you're truly worried about code reuse and cluttering your webpage with style embedded in the html "content", use a templating system!
Formatting with tables also has the advantage of displaying properly in older browsers, and achieving things that are extremely difficult to do with the current css model.