I don't know whether CSS directly supports this; the CSS2 specification doesn't define which elements the ":hover" pseudoclass can apply to, so if you wanted to use that for table elements (like td), it may be supported in some browsers, but no guarantees. Javascript is probably the best way to do it, and is more likely to work in major browsers.
One place I saw this recently was
the PHPFreaks tutorial site (using javascript to switch between CSS definitions); check out their code to see how it was done. Pretty simple, really.