This has been discussed over and over and over and over again, and you would think in 2012 with HTML5 this conversation would have been put to sleep a long time ago. Unfortunately, not.
Tables have their place in HTML, but it appears some people haven’t received the memo as to what that place is.
Tables are for tabular data. Not layout.
Saying that you shouldn’t use tables is wrong, it’s another case of right tool for the right job.
If you need to position elements in your HTML document, use CSS. If you need to list data in a tabular format, use a table.
Plain and simple.