indica and sativa are considered two different species, although they can be mixed with little to no difficulty. Sativas tend to have a higher ratio of THC to other active chemicals, so the uplifting, cerebral effects of the THC are more pronounced. Indicas have higher proportions of other cannabinoids such as CBD, which tend to lead to more of a body stone.

Different strains are like breeds of animals or varieties of apples. In theory, cannabis of a given strain will have that strain's characteristics, which are passed genetically (sort of like a family line). In practice, all sorts of random crap gets called "Hindu Kush" or "Purple Haze" or whatnot (those are both well-known high quality strains, btw), and it's hard to tell. Your best bet is to look up pictures online of a given strain to see if the stuff you're getting looks similar, although different plants can look rather different. Different strains have subtly different balances of the various active chemicals (THC, CBD, etc.), and many also have a distinct taste (Blueberry, for example, which is supposed to taste like its namesake) or appearance (Purple Haze, which has purple tinted buds).