First marinade: Remove skin from the chicken, pat dry, and make deep cuts in the meat. Mix grated garlic, ginger, and lemon juice; rub it all over the chicken. Sprinkle lightly with salt and refrigerate for 20 minutes.
Second marinade: In a bowl, mix Greek yogurt, chili powder, garam masala, and oil. Pat the chicken dry again, then coat it thoroughly in the yogurt mixture. Refrigerate for at least 4–6 hours, preferably overnight.
Roast chicken: Preheat the oven to 200°C (392°F). Roast the chicken in the middle of the oven until golden brown and cooked through, about 50 minutes to 1 hour. Cool slightly, then shred the meat into large pieces.
Prepare butter tomato sauce: Soak cashews in warm water for at least 30 minutes, then drain and blend into a smooth paste.
Cook the sauce: Heat oil in a sauté pan. Add tomatoes, chopped garlic, grated ginger, chili powder, cardamom, and fenugreek. Cook over medium heat until tomatoes are completely soft.
Blend and strain: Add cashew paste and blend the sauce until smooth. (Optional: strain through a coarse sieve for extra smoothness.)
Finish the sauce: Return sauce to the pan. Simmer for a few minutes, seasoning with honey, chopped green chili, salt, and pepper. Whisk in butter and cream until fully melted and silky.
Combine: Stir in the chicken (or vegetarian substitute) and simmer gently until heated through.
Serve: Garnish with chopped coriander and serve piping hot with basmati rice and/or naan bread.