Garam Masala is an Indian spice mix available (in the US) in cans from Indian grocers, or can be made like so:
Heat a heavy frying pan (preferrably iron) (or an Indian wok (kadhai)) for 2 minutes over medium heat. Add the spices and roast over medium heat, stirring and shaking the pan constantly in order to prevent burning. For the first minute or so, nothing will happen -- the spices are losing their moisture during this time -- then all of a sudden they will start to turn brown. This is a crucial period: if you don't watch them carefully and stir them constantly, they will burn almost instantly. As the spices brown they will begin to smoke, releasing the sweet fragrance of roasting spices. Roast them until they turn dark brown. Turn down the heat if they seem to be browning too fast. 1 1/2 cups of garam masala will take about 10 minutes, depending on the pan and temperature. Take the browned spices out of the pan immediately, and put them into a clean dry bowl to cool completely before grinding.
Grind using a coffee grinder, a spice mill, or an electric blender, and grind into a fine powder. A food processor is not suitable for grinding a blend of spices of varying hardness and size.
Store in an airtight container in a cool place.