Line a large pot with a thin layer of water. Add onions and cook over high heat for three minutes. Add garlic and continue to cook until most of the water has cooked off. Add 3 cups water, lentils, carrots, bay leaf, curry, ginger, cilantro, red pepper flakes and cloves, stirring to combine. Cover and bring to a boil. Once boiling, reduce heat to low and simmer for 20 minutes, or until lentils are cooked and most of the water has absorbed. Stir in 1 tsp garam masala and turn off heat. Let rest 5-10 minutes, allowing the flavors to merge. Transfer soup to a blender, add non-dairy milk and puree until smooth and creamy. Add salt and pepper to taste and additional garam masala if desired. Garnish with fresh cilantro leaves and serve.