Make the garam masala by combining the coriander, cinnamon sticks, allspice berries, cloves, fennel seeds, both cardamoms, and fenugreek seeds in a dry pan over high heat. Toast until fragrant, 2-3 minutes, stirring occasionally. Put in a spice grinder and grind into a fine powder
Toast almonds and coconut in a dry pan over medium-high heat until coconut is golden brown and fragrant; stir occasionally
Puree the garlic, garam masala, ginger, onions, tomato paste, cilantro, mint, lemon juice, lemon zest, almonds, coconut, turmeric, salt, and red chili powder until well combined and a thick paste forms. This is the tikka masala paste
To make the masala sauce, heat ghee in a medium sauce pan over medium heat and add 1 cup of tikka masala paste. Saute until paste is fully cooked and begins to separate from fat, about 5 minutes. Add tomato sauce and let cook for 1-2 minutes. Add milk and cream, bring to a boil, reduce heat, and simmer for 15 minutes
Add chicken, paneer, etc. if desired and serve with rice or naan