Heat the Oil and Soften the Onion: Warm the canola oil in a large Dutch oven or stockpot over medium heat. Add the diced onion and cook, stirring regularly, until it becomes soft and translucent, about 8 to 10 minutes.
Add Ginger and Garlic: Lower the heat and stir in the grated ginger and minced garlic. Cook for about 1 minute, stirring frequently, until the mixture becomes aromatic.
Incorporate Spices: Mix in the curry paste (if using), garam masala, 1 teaspoon of kosher salt, and ½ teaspoon of freshly ground black pepper. Stir constantly and cook for another minute to blend the flavors.
Add Liquid Ingredients and Lentils: Pour in the water, scraping the bottom of the pot to loosen any browned bits. Stir in the coconut milk, lime juice, agave nectar, and red lentils. Turn the heat up to medium-high and bring the mixture to a boil.
Simmer the Lentils: Once boiling, reduce the heat to medium-low. Cover the pot and allow the lentils to simmer for about 10 minutes.
Add Yams and Cauliflower: Stir in the diced yams and cauliflower florets. Cover the pot again and let everything cook for an additional 15 minutes, or until the vegetables and lentils are tender.
Season and Serve: Adjust the seasoning with more salt and pepper if needed. Serve the curry hot, optionally over steamed brown rice, and garnish with fresh cilantro for a burst of flavor and freshness.