With CellContext->Cell, a unique default context is used for the current cell. This context is always different from the default contexts of all other cells, but stays the same for all evaluations done in the current cell.
With CellContext->CellGroup, a unique default context is used that is shared between all cells in the nearest enclosing group that includes the current cell and any output generated from it.
With CellContext->Notebook, a unique default context is used that is shared between all cells in the current notebook.
CellContext effectively allows sequences of evaluations to be isolated from each other within a single Mathematica session.
By changing the default context using CellContext, values of session variables such as In, Out and $Line are effectively localized.