ICSP can be used to reprogram a device which already has a program on it (if it is a flash device, of course!). However, there are some limitations. You have the option, when programming the device using a parallel programmer (a programmer not using ICSP), to set certain bits to not allow ICSP. If these have been set, you will not be able to do ICSP. This is for code protection and related issues.