I already use IceFaces, and it seems pretty good. It irons out a few problems with JSF and provides you very easy AJAX.
I don't think you have to do very much to change an application over from basic JSF to IceFaces - however, we pretty much started out with IceFaces on teh app I'm currently working on so I don't know what it's like to change over a big application.
I'd definitely suggest giving it a try - we have had a few issues but the forum has been quite good at resolving them. And being open-source it means you can delve into code yourself if you come across probelms - but I rarely have to do that!
I haven't tried RichFaces but I believe IceFaces has the edge on features. As far as I am aware, RichFaces doesn't yet have server-initiated rendering? - which is a very useful feature for long running jobs, etc.