Another "me-too" post.
Regarding possible root causes, based on what I've read in the thread...
1) This definitely started with Snow Leopard, and has not been fixed by any updates.
2) This afflicts the Dock and the Finder, which points to a lower-level system service providing bad data.
3) The blurry icons have nothing to do with screen resolution, TV output settings, monitors, etc - this affecting specific icons at a given time, not all icons.
4) Different accounts on the same computer have different blurry icons, which points to this being a user-level issue. Note that /private/tmp has sections separated by user, so files in there can be in play despite it being a "shared" folder.
The following is my opinion (and it's just that, but I do have a Mac programming and CS background - take it for what it's worth).
It's very unlikely that any third-party application caused this. The vast majority of applications have nothing to do with system services and don't modify them in any fashion. GraphicConverter, for instance, isn't mucking around with the OS. CandyBar does, but I've never used it yet see the problem constantly. It is possible that some combination of API calls mucks something up in the OS, but that still leaves it an OS issue, not an application one.
It's also very unlikely to be a graphics driver issue. What we're seeing are lower-resolution versions of the icons being used rather than the higher resolution versions, which points to an API bug, and then an unfortunate caching of bad data. Most icons on Mac OS X have multiple sizes within a single icns file - 512px, 128px, 32px, 16px being the most common. This looks distinctly like the OS is asking for a higher-resolution version, but is only retrieving a low-res version. On my system, my Dock currently has two "bad" icons on the Dock, and they appear to be 32x32 scaled up.
As quitting and relaunching the Dock or Finder does not always clear up the issue, it seems that either a low-level system service remains borked (technical term), or there is an on-disk cache somewhere that is holding the bad data. I'd concentrate on user-level caches.