Heat karhai/wok over medium-high and add 1/4 cup oil. Fry chicken, stirring often for 3 minutes, and then remove to a bowl.
In the same karhai (adding some oil if necessary), add the onions over medium-high. Stir often until coloured, about 2 minutes. Lower heat to medium, then add 1-2 tbsp water and mix through. Add ginger-garlic and stir for 1 minute. The mixture should be browning.
Add 1 tsp of the coarsely ground cumin seeds and stir for 30 seconds. Add chilli powder and stir constantly until combined. Add a few tbsp water and stir for 30 seconds, then add the tomatoes. Mix through, and then cover over medium for 5 minutes. Stir, and then cover further 3 minutes. The tomatoes should be soft.
Add chicken and mix in over high for 1 minute. Add the dried fenugreek and stir through. Add the sliced green chillies and fry for 1 minute. Stir through the black pepper powder, then add the garam masala and cook 1 minute. Make sure to stir regularly so the mixture doesn't stick. Add the remaining 1/2 tsp of ground cumin seeds, and stir to combine, then reduce heat to medium-low.
Stir through the coconut, and cook for 1 minute. Add the yogurt and stir slowly over medium-low for 2 minutes, until well combined. Now add the cream, and stir slowly for further 2 minutes. Add the flour and mix well, then cover for 5 minutes or until chicken is cooked.
Uncover the dish and increase flame to high. Add the ginger and stir through the dish, then add half of the coriander. Stir 1-2 minutes over high to dry any excess water. Serve, garnished with a dollop of ghee over the top (optional) and the remainding fresh coriander.
N.B. Put the required amount of yogurt and cream in bowls before you start cooking, so it is room-temperature when you have to add it to the chicken; it will blend through the dish easier.