Heat a little butter in a large pan and cook the chicken in batches until browned.
When brown, remove from heat and place chicken on a plate.
Reduce heat to medium and add any remaining butter. Add ginger and garlic and cook for 1 minute. Add coriander, cumin, garam masala and chilli powder. Cook for 30 seconds. Add tomato puree, 125 ml water and a pinch of salt and simmer for 10 minutes.
Return chicken to saucepan with yoghurt and cream. Simmer for a further 10 minutes or until chicken is cooked. Ladle into bowls, sprinkle with almonds and coriander. Serve with rice or roti.