Warm the oil in a medium saucepan over medium-high heat until nearly smoking.
Keep your lid handy. Add the mustard seeds and the cumin seeds; they should start enthusiastically popping upon contact with the oil, so cover the pot until the spluttering subsides, about 30 seconds.
Add the onions and saute until soft and just starting to brown, 5 to 7 minutes. Add the garlic and ginger, and saute until the garlic is soft, about 2 minutes longer.
Add the turmeric, garam masala and paprika. Stir and cook about 30 seconds. Then add the vinegar (standing back so you don't inhale the fumes!) and cook 1 minute more.
Add the tomatoes, molasses, 1/2 teaspoon of salt and lots of freshly ground black pepper. Stir, bring to a boil, then cook at a generous simmer about 10 minutes until thickened. You can puree it if you like. Set it aside to cool and then jar. Store in the refrigerator.
Combine the cinnamon sticks, cloves, green cardamom seeds, black cardamom seeds, if using, in a spice grinder or coffee grinder and grind until fine. Store the spice mix in an airtight container away from direct sunlight.