This recipe is from Epicurious and it's very good--much better than store-bought garam masala. I already had all the needed spices, so it was a snap to make. I used it tonight in my beef keema (use lamb if you want it to be more authentic).
A 1-inch piece cinnamon stick, broken into pieces
2 bay leaves
1/4 cup cumin seeds
1/3 cup coriander seeds
1 tablespoon green cardamom pods
1 tablespoon whole black peppercorns
2 teaspoons whole cloves
1 dried red chile
1/4 teaspoon freshly grated nutmeg
1/8 teaspoon ground mace
Heat the cinnamon, bay leaves, cumin seeds, coriander seeds, cardamom pods, whole peppercorns, cloves, and chile in a medium skillet over medium-high heat, stirring often, until the cumin becomes brown, 2 1/2 to 3 minutes. Transfer to a spice grinder or coffee mill, add the nutmeg and mace, and grind until powder fine. Store in an airtight container for up to 4 months.