Whisk together marinade ingredients, and toss in chicken. Coat the chicken thoroughly with the marinade, cover, and refrigerate for at least 30 minutes. I've left it in the marinade for as long as two days before and it was still delicious.
In your favorite large sauté pan, melt the butter in the olive oil over medium heat. Your kitchen is about to smell ah-mazing.
Add the peppers, garlic, and ginger to the melted fats. Stir everything together, and cook until the mixture starts to brown on the edges.
Add the tomato paste to the browning pepper, garlic, ginger mixture and cook until the mixture changes from the bright red tomato paste color to a darker, richer maroon color.
Add your spices ( garam masala, paprika ) to a corner of the pan that does not contain your yummy tomato paste mixture. Stir them in that corner of the pan for just a minute to let them toast and bring out all the flavors, then stir everything in the pan together into one delicious, spicy paste.
At this point, add the chopped tomatoes, salt, and water. Bring all of that to a boil, then back down to a simmer. Let it simmer 20 minutes.
Now you have some time to kill -- let's start that chicken. First, turn on your broiler to high ( or just "broil", if you don't have an option to select the level of broiling ). Put the chicken on a foil-lined pan, or else you will have a Cleaning Nightmare on your hands later.
Broil the chicken 4 min each side. It's okay if it isn't cooked through -- it will finish cooking in the sauce later.
While your chicken is broiling, puree the sauce in your favorite blender, food processor, or use an immersion blender. Once pureed, return it to the pan to wait for the chicken.
After the chicken has done its time under the broiler, add it to the pureed sauce and simmer for 10 minutes. Stir in the milk, and serve!