ImageCache was the Drupal 6 way of doing things when you wanted a modified version of an already existing image on the site. Instead of manually manipulating the image and keeping a copy of it manually, you could setup an ImageCache preset which would be used to manipulate the image automatically.
In Drupal 7, this functionality is now in the core and it has also gone through some subtle changes to keep up with changes in the core.