Put oil in a skillet over medium-high heat; when it is hot, add onion and cook until soft, about 10 minutes; set aside.
Meanwhile, combine the lentils, ginger, garlic, mustard seeds, cloves, and 1 teaspoon pepper in a saucepan. Add water to cover by about 1 inch, and bring to a boil. Adjust heat so mixture bubbles gently, and cook, stirring occasionally and adding water if necessary, until lentils are tender, 15 to 20 minutes.
Sprinkle with salt and more pepper and keep cooking to desired tenderness. Lentils should be saucy but not soupy.
Remove cloves from pan and add reserved sauteed onion. Stir in butter if you are using it. Taste and adjust seasoning, then garnish with cilantro and serve.
Recipe courtesy of Mark Bittman