You’ll only need a large cooking pot to make this dish. Peel the onions, roughly chop one of them, and add it to the pot with a tablespoon of olive oil. Let the onions soften over moderate heat. Half and thinly slice the remaining onions and set aside. Peel the garlic cloves, thinly slice, then add them to the pot to cook with the onions. Cook the onion and garlic together, but don’t let them brown. Add the coriander, cumin, cayenne, and turmeric to the onion/garlic mixture, and let them all get to know each other for about a minute or two. Add the water and bring to a boil. Season with salt and a good amount of black pepper. Cut the potatoes into large chunks, roughly ½ inch or so. Lower the heat and simmer for 15 minutes. While the potato mixture is simmering, break the cauliflower into large florets. Add the cauliflower, and continue simmering for another 15 minutes. In the meantime, cook the remaining onions in a little oil in a shallow pan. You want them to be a deep golden color.
While the onions are cooking, crack the cardamom pods, scrape out the seeds, and crush them lightly before adding to the onions. Cook for about five minutes, then remove and place them on a paper towel. Once the cauliflower and potatoes are tender (just poke your fork or a knife into them), stir in the garam masala. Make sure you do this at the end of the cooking process, and not with the first batch of spices — as Nigel notes, garam masala is already roasted so doesn’t need a lot of cooking. Add the crème fraîche and a spoonful of sugar, let everything simmer for about a minute, then serve, topped with the cardamom onions, and roughly chopped or torn cilantro leaves.