Although you can buy prepared garam masala, it's fun and easy to make your own, and it will be usually be fresher and more flavorful than anything you find in the market. Don't be tempted to skip the dry-roasting step; this is what gives depth of flavor to the spices. The spices can be ground with a mortar and pestle, if you don't have a spice (coffee) grinder.
Place the cinnamon stick, peppercorns, cumin, fennel, coriander, and mustard seeds in a small skillet and toast over medium heat until they're hot to the touch and fragrant. Don't allow the pan to smoke. Remove from the heat and let cool completely.
Transfer the toasted spices to a spice grinder and grind to a fine powder. Transfer the mixture to a small bowl and add the ground fenugreek, allspice, chili powder, turmeric, and ginger, whisking to blend.
Store the garam masala in an airtight bottle, away from heat and light, for up to 6 months.