To make the lentil meatballs: Place the lentils and water in a large saucepan. Bring it to a boil and let it simmer for 20-25 minutes. Once cooked, drain and set aside.
Meanwhile, mix the yogurt and milk in a bowl. Stir in the bread and mix. Let it soak for 5-10 minutes.
Pre-heat the oven to 400 degrees. Line a baking sheet with a piece of parchment paper.
Place the cashews, garlic, and cilantro in the bowl of a food processor. Process for 30-40 seconds. Add in the lentils, soaked bread, salt and pepper. Pulse until it turns into a coarse puree. You may have to scrape down the bowl a couple of times.
Roll 2 tablespoons of the lentil mixture into a ball. Arrange them on a baking sheet as they are rolled. Lightly brush each ball with olive oil. Bake in the oven for 20-25 minutes or until crusted and dark brown. Set aside to cool.
To make the sauce: Place the cumin and coriander seeds in a large heavy bottom pan and toast for 1 minute or until fragrant. Transfer into a spice grinder (or using a mortar or pestle) and process into a powder. Set aside.
Back in the pan, dry roast the onions while stirring regularly until they turn lightly browned or 7-8 minutes. Stir in 1/2 cup water. Transfer the now-cooked onions, garlic, ginger, cilantro, and salt to the bowl of a food processor (or a blender). Process until it is completely pureed or 45-50 seconds.
Heat olive oil in the pan over medium heat. Add in the onion puree and cook, stirring constantly, for 6-8 minutes or until browned. Add the cumin and coriander mixture, cinnamon stick, garam marsala, turmeric, cardamom pods, and cayenne pepper. Cook for 2-3 minutes.
Stir the tomatoes into the sauce and mix, scraping to bottom of the pan, until they are all incorporated. Stir in the remaining 2 cups of water. Let it come to a boil, turn down the heat to low and let it simmer. Cook uncovered until it is reduced, 20-30 minutes. Carefully drop in the lentil balls one by one. Gently shake so that they will sink in the sauce. Let them warm for 5-7 minutes.
Make the yogurt sauce by whisking together the yogurt, garlic, olive oil, lemon juice, and salt.
To serve: Place a cup of bulgur pilaf (or any other grain of your choice) on a plate. Place 3-4 lentil balls on top. Spoon some of the curry sauce over the lentil balls. Drizzle it with the garlic-yogurt sauce. Sprinkle with chopped cilantro and serve with lime wedges.