Cook aromatics: Heat the olive oil in a large saucepan over medium-high heat. Cook the onion for about 5 minutes, or until translucent. Add the garlic and cook for 30 seconds more.
Cook spices: Add the curry powder, coriander, cumin, turmeric, and garam masala. Cook for 1 minute more.
Combine: Add the red lentils, diced tomatoes, vegetable broth, and butternut squash. Bring the liquid to a gentle boil before reducing the heat. Simmer with the lid on for about 20 minutes, or until the lentils are cooked and the squash is just tender.
Add the garam masala and mix.
Blend: Use an immersion blender to [partially blend the soup until the desired consistency. Otherwise, Transfer 2 cups of the curry (without the squash) to a blender. Blend until mostly smooth. Return to the saucepan.
Add liquid: Stir in the desired amount of coconut milk, vegetable broth, or non-dairy milk until the desired consistency. Heat until warmed through, adding more broth, coconut milk, or non-dairy milk as needed.
Season: Add fresh lime juice to taste. Garnish with freshly chopped cilantro.