Ashutosh,
Incremental garbage collection is a means of break garbage collection work into small chunks that can be done without excessive delays. That means that there's no single large delay for collection. Different incremental garbage collection schemes differ in terms of whether the root set needs to be scanned in a single step (most of the time, it does, and that can be a delay in itself... so you aren't solving all delays), and how much additional overhead is incurred on garbage collection to make it incremental -- overall, incremental collection will always reduce the total throughput of your application.
A typical incremental GC scheme would have each
thread collect a little every time it allocates memory, so the threads that are doing the most allocating take the most performance penalty from it, so fairness is another advantage.
Chris