Marinade the chicken with all of the marinade ingredients overnight (but 20 minutes will do in a pinch!).
Add neutral oil to a skillet with high sides and brown the chicken in batches. Set aside.
Add the butter to the same skillet you browned the chicken in along with the onions. Fry until softened (about 5-8 minutes). Add the garlic and ginger and cook until fragrant (about 30 seconds). Add the garam masala, cumin, turmeric, and coriander and let bloom about 30 seconds.
Add the tomato puree, salt, chili powder, and kashmiri chili powder and stir. Cook on low for about 10-15 minutes or until the masala thickens and becomes deep red. Make sure to stir occasionally or this can easily burn!
Pour in the heavy cream and stir continuously until it's fully incorporated. Add the brown sugar and stir. (IF you want a smooth curry, you can opt to out this mixture into a blender to blender and then strain back into the pot. I don't do this, but you can!)
Add the chicken and their juices back into the curry and stir. Bring to a boil then lower to a simmer, cover, and let cook for 30 minutes. Make sure to stir occasionally to avoid burning. Add a touch of water if the curry gets too thick.
Add chopped cilantro and serve with fresh naan and rice.