Melt butter in a large pot or dutch oven over medium heat. Add onion and celery and sauté until soft. Add garlic and cook a minute more, then stir in carrots, lentils, pepper and water. (Salt is intentionally left out at this point, it prevents legumes from softening.)
Cover and bring to a boil, then reduce heat to low and cook, mostly covered, until very tender, about 35 minutes. Stir in cream and milk, then season with salt and stir in parsley. Add a splash of water if the mixture is dry - you want it quite saucy.
Cook the potatoes in salted, boiling water until tender, then mash with milk and 3 tbsp butter. Season to taste with salt and pepper.
Spread lentils into a 2-litre (2-quart) casserole dish. Spread the mashed potatoes on top. Dot with last bit of butter, then bake at 375 until golden on top, about 20 minutes. Sprinkle with more parsley, if desired.