I like both methods, but only at their extremes.

I like that in Diablo II you had to select class-specific skills. You could play the game 7 times and they would show you 7 completely different aspects of the game.

I like that in Castle of the Winds and Dungeon Seige you had no classes, just attributes that specialised your character. You could create your own classes by training particular skills. It was still possible to play any extreme (warrior, mage, etc.). The problem in this (as I have in Divine Divinity) is that some skills are too useful to ignore (such as Identify) and trying to discipline yourself not to use them can be difficult.

I agree that any one class should be able to complete the game. If you do have classes, then some sections of the game should become totally inaccessable to the other classes. Only a warrior can join the Warrior's Guild, a thief the Thieves Guild, a wizard the Wizard's Guild, and a healer, the Healer's Guild. Each Guild provides equal bonuses for attending them and completing their quests. Also, a warrior may become a part-time body guard, a thief can rob houses at night, a wizard can assist in a greater cause, and a healer could gather rare herbs for a mysterious plague. Only these classes gain access to these quests, all providing equal bonuses.

Can you imagine the replay value in that?