Toast the cumin and coriander seeds in a dry pan over medium heat until fragrant, about 1-2 minutes, then remove and set aside.
Add the oil to the same pan and warm it over medium heat. Sauté the chopped onion until golden and fragrant, about 8-10 minutes, stirring frequently.
Stir in the minced garlic and grated ginger, cooking for another minute until aromatic and fragrant.
Add the toasted whole spices back into the pan, then sprinkle in the ground cumin, coriander, and cinnamon. Toast these ground spices with the onion mixture for about 30 seconds, allowing their oils to release.
Stir in the chopped tomatoes and cook until they break down and become jammy, about 5-7 minutes, smelling fragrant and seeing the mixture thicken.
Pour in the coconut milk, stirring well to combine. Bring the mixture to a gentle simmer over low-medium heat.
Add the denser vegetables like carrots and potatoes first. Cover and simmer for about 10 minutes, until they start to soften.
Next, add the quicker-cooking vegetables such as peas, bell peppers, and cauliflower. Continue simmering until all vegetables are tender but still vibrant, about 10 more minutes.
Taste the curry and add salt as needed. For extra brightness, squeeze in lemon juice if desired.
If you prefer a smoother sauce, blend it directly in the pan with an immersion blender until silky, about 30 seconds, leaving some texture if preferred.
Sprinkle chopped fresh cilantro over the top, then serve the vegetable korma hot, accompanied by rice or flatbread for a complete meal.