Check all spices and remove any rotten pieces or dirt. Check cloves and remove any stems without buds. Break the cinnamon into smaller pieces, and clean the dirt between the grooves using a damp kitchen towel.
Add all spices to a large skillet. Lightly toast these spices, on medium-heat, for about 2 minutes, stirring every 20 seconds or so. The spices are done when they start releasing their aroma. Turn off the heat. Transfer to a plate to stop the toasting. Cool for 10 minutes.
Using a coffee or spice grinder, grind this mix in 3-4 batches. Give it a good shake in between to prevent spices from clumping. Grind it to a fine texture.
Grate nutmeg using a microplane and add to the spice-mix. Store in an air-tight container, in a cool and dry place.
Stick with making a small batch. This recipe makes 4 tablespoons (1/4 cup) of seasoning mix. The ground spices tend to lose their flavor after a few months, which can alter the flavor balance of the whole blend.
Cool the toasted, whole spices completely before grinding. If the toasted spices are still warm when you add them to the spice grinder, the warmth will turn the spices into a paste rather than a powder.
Store in a cool, dark place. Place the ground garam masala spices a small mason jar, label, date and store in your spice cabinet for up to 3 months.
If you're in a pinch, a good alternative to Garam masala is to combine 1 part ground cumin to 1/4 part ground allspice. This works as a good substitute for this wonderfully complex spice mix.
Homemade garam masala beats store-bought any day. But for busier times, I always have a store-bought back-up in my pantry. I have tried many brands and find the Everest Garam Masala blend to be a close substitute.
Note: The nutrition facts below are my estimates. If you are following any diet plan, I recommend cross-checking with your preferred nutrition calculator.