Preheat the oven to 450°F.
Make the squash. On a baking sheet, toss together the squash, olive oil, honey, garam masala, and a pinch each of salt and pepper. Roast until the squash is tender, 25 to 30 minutes, tossing halfway through.
Meanwhile, make the soup. Heat the olive oil in a large Dutch oven over medium heat. When the oil shimmers, add the onion and cook, stirring, until soft, about 5 minutes. Add the butter, ginger, garlic, garam masala, turmeric, cumin, cayenne, and a pinch each of salt and pepper. Cook, stirring, until the butter is melted and the mixture is fragrant, about 2 minutes.
Add the broth and lentils. Season generously with salt. Increase the heat to high, bring to a boil, and then reduce the heat to low. Cover and cook until the lentils are soft, 15 to 20 minutes. Stir in the coconut milk and spinach and cook until the spinach is wilted, about 5 minutes. Remove the pan from the heat and stir in the cilantro.
To serve, divide the rice among bowls and ladle the soup over the top. Spoon the squash into the soup and top with the herbs and a dollop of yogurt. Serve with naan alongside, if desired.
