From my year+ experience helping FPS online gamers with their connections (boy are these guys picky!) - I gotta say - for surfing, you're generally better with cable. Better $/mb of bandwidth. Cable here is 250k up, 1.5mbits down. But you'll never see it. I used to get 170k/s (not 1mb/sec - not even cable will do that - that's a 9mbit line - equal to roughly 6 T1's) when I was one of the first on the service.
For gaming or stability (reliability), DSL is the way to go.
Of course you're gonna find bad DSL ISP's - but that's typically what it is, an ISP. I had a little local ISP and I found out I was their tech support. I would tell THEM when something was wrong with their service.
I changed ISPs to a big name (in this area) and things are dramatically better. I can actually play on servers in Europe with acceptable pings.
In my area - it's 272k up and 640k down for $40/mo (including ISP cost). I pay $20 for 5 static IP's and wouldn't go without them.
Cable bandwidth is very spotty - and typically very poor at peak usage hours. Cable tech support is as bad as AOL support. It's never their issue. And don't count on AT&T upgrading their equipment because they oversold a node (your neighborhood). That's how they make their money. The least amount of equipment and the most people. It's a shared connection for a reason. DSL isn't.
My DSL has been down for about 30 minutes over the last 15 months. (Only that much because they suffered a large DOS attack - whereupon they promptly put in a line filter - and it's never happened since).
I've had cable in my area - 1 way and 2 way. I could tell you all kinds of tech support nightmare stories with these guys (AT&T, MediaOne, RoadRunner). But I won't unless asked.

And service was spotty.
Anyway, I'll take DSL over Cable any day.