In a large saucepan over medium heat, cook the onion, celery and carrots in the olive oil, stirring frequently, until golden, about 10 minutes. Add the garlic and cook until fragrant, about 1 minute. Add the tomatoes, bring to a simmer, and cook, uncovered, for 10 minutes to reduce the liquid.
Pick over the lentils, discarding any stones or misshapen lentils. Rinse well and stir into the saucepan. Stir well; add the stock, and bring to a simmer over medium heat. Reduce the heat to low and cook, uncovered, until partially softened, about 30 minutes. Add the escarole, salt, and pepper and cook until the lentils are tender, about 30 minutes longer.
Ladle into warmed soup plates and sprinkle with the cheese. Serve immediately.