With a sharp knife make regular slits through the skin and flesh of the chicken portions; rub with salt and garam masala, then sprinkle with the lemon juice; grind the green chili, ginger, garlic and cardamom to a fine paste; mix this paste with the yoghurt, paprika, chili powder and a few drops of orange food coloring (optional); place the chicken and the spice mixture in a large bowl or dish and give a good swirl so the pieces are evenly coated, cover and set aside (in the fridge) for 4-5 hours to marinate; remove the chicken and place on a greased baking tray and cook in a preheated oven (400F) for 45-50 minutes, turning as they get golden-brown and crisp; brush the portions with a little melted butter occasionally.
Melt the unsalted butter in a saucepan and saute onion until just starting to brown, about 8-10 minutes; add ground almonds and saute until lightly toasted and fragrant; add the remaining marinade, sour cream and heavy cream; gently heat, without boiling for 5-6 minutes; pour the sauce over the baked chicken and serve as a main dish with naan bread.
I serve this with steamed basmati rice (the sauce is excellent) but might try a pullau next time cause this deserves something more elaborate.
Note1: I use ultra-thick, Greek yoghurt for both the yoghurt AND the sour cream called for in this recipe. There are different fat levels, I like to use the 2%.
Note2: I really don't remember where I initially came across this recipe - I know I tried several different variations of butter chicken till I found this one and pronounced it 'just right' (to my taste, anyway). I can tell you though that I NEVER use the food colouring. I prefer to soak some saffron in a tiny bit of warm milk and stir that in for colour. May not be traditional, but that's my way.