Heat 1 tablespoon vegetable oil or ghee in a pot over medium heat.
Add 1 medium yellow onion, chopped. Cook, stirring occasionally, until the onion is soft and translucent, about 5–7 minutes.
Add 3 cloves garlic (pressed) and 1 teaspoon fresh grated ginger. Cook, stirring, for 30–60 seconds until fragrant.
Add 1 14-ounce (400 g) can diced tomatoes or passata, then add the spices: 1 tablespoon curry powder, 1 tablespoon garam masala, 1 teaspoon ground cumin, 1 teaspoon ground coriander, 1 teaspoon ground turmeric, 1/4 teaspoon ground cardamom, 1/2 teaspoon fennel, and 1/2 teaspoon chili powder. Stir and cook for 2–3 minutes, until the mixture is fragrant and begins to thicken slightly.
Pour in 1 14-ounce (400 ml) can creamy coconut milk and stir to combine. If using, add 1 tablespoon lemon juice now. Bring to a gentle simmer, reduce heat to low, and simmer uncovered for 5 minutes.
Remove the pot from heat and let cool for a minute. Blend the curry until smooth using an immersion blender directly in the pot or by transferring the mixture in batches to a countertop blender. Return the blended sauce to the pot and place over low heat.
Add 1 14-ounce (400 g) can butter beans, drained and rinsed, to the blended sauce. Gently stir and cook on low for 1 minute, until the beans are heated through.
Serve the creamy vegetable korma hot with naan or basmati rice and garnish with chopped fresh cilantro or parsley.