It's a common misconception.
If you've got tabular data, ie 2 or more columns of data/text that is related to headings at the top or down the side, use a table. That's what it's there for!
What you should not be doing is using a table to lay out a whole page where there isn't that relationship, and you're just using it to position items around the page. That's when you should be using CSS instead.
But tables have always had their place, and will continue to have their place. The trick is knowing when is the right time to use them and when is the wrong time!