LivePerson from
http://www.liveperson.com is the best customer service chat out there. It uses a java applet as the chat interface. Works great, and a ton of companies, including google adwords, use it. They charge by the seat, so it can be pretty expensive though...
PHPLive! from
http://www.phplivesupport.com/ is also pretty good too. It would have been our second choice (for the company I work for). It's all coded in PHP/JavaScript and works pretty well (No Java Applet). I believe they have a standard license cost with unlimited seats (because you host it yourself).
There are others out there, but those two seem to be the best. We choose LivePerson because the Java applet seems to be pretty reliable
(javascript gets message every second, or something like that. Java applet has direct connection. Just the way the technologies work. PHPLive works well though), and LivePerson has a "CoBrowse" feature which allows your Customer Service person to control the customers browser window (using javascript and the javapplet) to walk them through filling out a form or something (my boss really wanted teh cobrowse feature).