Heat the oil in a wide skillet or Dutch oven over medium heat. Add the cumin seeds and let them sizzle until they smell toasty and darken a shade.
2 tbsp coconut oil or avocado oil, 1 teaspoon cumin seeds
Add the diced onion. Cook, stirring now and then, until soft and just starting to turn golden at the edges (may take about 5-7 minutes). Don't rush this step.
1 medium yellow onion
Stir in the fresh garlic & ginger. Cook until the raw garlic smell turns sweet (few minutes).
5 garlic cloves, 1 inch fresh ginger
Add the coriander, turmeric, chili powder, and salt. Add a few grinds of fresh black pepper. Stir constantly until fragrant, about 1 minute. Ground spices burn fast, so if the pan looks dry, splash in a little water.
1 teaspoon ground coriander, 1 teaspoon ground turmeric, 1 teaspoon chili powder, 1 teaspoon fine sea salt, few grinds of fresh black pepper
Pour in the tomato puree and scrape up anything stuck to the bottom of the pan. Add the butter beans and coconut milk, then loosen with a small amount of water (1/4-1/2 cup). Bring to a gentle bubble.
14.5- oz can tomato puree, 2 cans butter beans (15 oz cans) , 13.5- oz can full-fat coconut milk, 1/4-1/2 cup water
Simmer uncovered over low heat, stirring every few minutes, until the sauce thickens (10-15 minutes).
2-3 cups packed baby spinach
Fold in the spinach (if using) and let it wilt. Off the heat, stir in the garam masala, lime juice, and maple syrup if the tomatoes taste sharp. T
1.5 teaspoons garam masala, 1 juice of half a lime, 1 teaspoon pure maple syrup
Scatter the cilantro over the top and serve.
1/3 cup cilantro