I agree with pixelgrid about the debugging headaches. It is a great caching plugin, but do NOT use it while designing/developing the site. Turn it on when you move to the actual debugging phase, and be sure to NOT be logged into your admin account, since logged-in users are, by default, given uncached pages
to the debugging point here, I always recommend having a dev site and a live site. Run your caching plugin on the live site and leave dev serving normally. You can test everything this way, other than issues with the caching plugin itself, in which case you can turn it on on dev then turn it off again once you figure it out.
One thing to take a look at is security. Several of the caching plugins have had large security holes that got exposed. Might not be the best idea if this is a site you don’t plan on maintaining more than once or twice a month.
I used W3TC for a few months. It got the job done nicely, but its garbage collection never performed correctly for me. Cache files were being regenerated inconsistently. A few months ago, there was a major upgrade that caused an uproar. The plugin author looks like he’s getting a better handle on it recently, but at that time I decided to switch to Quick Cache.
I’m still with QC and I’m satisfied with it. It doesn’t have as many bells and whistles, but if you need a simple, set it and forget it script, that’s a good choice.