How can I train myself to identify flavors better?
One thing that my mother suggested to me when I first started getting interested in learning to cook beyond blindly following a recipe was that I try making scrambled eggs with one single spice in them to see how that flavor affects the taste of something I know well. It's actually a pretty good way to train your tastebuds to understand what flavor a particular spice imparts. You could then move on to combinations of spices. 

For Indian food, however, they're probably using a combination of lots of spices. Garam Masala can be up to 12 different spices, not counting aromatics such as onions and garlic. So you may be better off trying to compare different recipes for that particular dish and seeing what the difference is with those particular spice mixtures. 

In general, I'm a big fan of trying different things and seeing if you like them. For example, I can't stand the flavor of black licorice, and so I avoid anise and all variants. However, I wanted to try making a chicken pho which called for star anise. I tried it, and found that in very small amounts, I actually like it. So go and experiment. Try different recipes for the same things, and try modifying your own recipes a bit at a time. Sometimes it may not work, but even then you'll be learning a lot.