Heat the butter in a large heavy-based pan with a lid. Add the onions and cook for 10 minutes until golden brown. Add the ginger, garlic, coriander, curry powder, chilli powder, turmeric and one teaspoon of salt. Sauté for 1 minute until fragrant.
Stir the tomato purée into the onion mixture with the fresh tomato and cook for another 3-4 minutes until thickened and bubbling.
Stir in the milk and then add the chicken. Cover, reduce the heat and simmer gently for 8-10 minutes until the chicken is almost cooked through but still soft.
Remove the lid and reduce the liquid for a minute or two. Stir in the garam masala with the cream and season to taste. Bring to a simmer but do not allow to boil.
To serve, arrange the butter chicken masala on warmed plates with the fragrant basmati rice and scatter over the coriander leaves.