Put the onion, garlic, ginger, chillies and coriander stalks in a small food processor and blitz to a paste.
Heat a large, non-stick frying pan over a medium heat. Add the cashews and toast for 1-2 mins until light golden. Set aside and return the pan to the heat. Add the oil and stir-fry the paste for 5 mins to soften. Add the garam masala and cook for a further 2 mins.
Add the tomatoes and stock to the pan. Mix well, then tip into a blender with the cashews and blitz until smooth. Return to the pan, season and bring to the boil, then lower to a simmer.
Cook for 30 mins until the sauce has thickened then add the chicken, cover with a lid and simmer for another 15 mins, until the chicken is cooked through. Add the yogurt and cream (if using), and stir well to make a creamy sauce.
Scatter with the coriander leaves and serve with the greens.