Fry the cardamom, mustard seeds and cloves in the oil for 2 minutes until the seeds start to pop.
Add the onions and green chillies and fry for a further 3 minutes.
Add the potatoes, garam masala, cumin, turmeric, ground coriander and garlic and stir fry for 2 minutes.
Add the ginger, chopped tomatoes, broccoli, chicken pieces (if using) and yoghurt and give everything a good stir.
Add the water, enough to cover the vegetables and simmer for around 30 - 35 minutes until potatoes are cooked - check them with a knife. Add the fresh tomatoes half way through and stir occasionally.
Stir in the cornflour slurry, coriander and salt and allow the sauce to thicken for a minute.
Serve with rice.