Good stir fry can be much trickier to make than most recipes indicate. There was a very good article about stir-fry in Cook's Illustrated about 2 years ago. Do a search on their website to find it.
Basically, several tricks to a successful stir-fry include: 1) only using a few ingredients, 2) cutting ingredients to uniform size, 3) maintaining a very hot wok or pan, 4) "silking" your meats and 5) not stirring too much.
Most people tend to throw every vegetable available into their stir-fry; this results in a dish that is impossible to cook uniformly and a confusing flavor profile. A good basic formula to follow is three basic ingredients plus seasoning; for instance, a meat, a pungent vegetable, a textural vegetable and a sauce. You might choose chicken for the meat, onions or scallions for pungence, broccoli for texture and teriyaki sauce for flavor.
Cutting meats and vegetables to a uniform size may appear simple but can be maddeningly complex. You can't just use 2" pieces of any vegetable. You must consider its water content and density. A 2" piece of onion will cook faster than a 2" slice of carrot because it has a higher water content and lower density of fiber. Thus, you must cut the carrot smaller or in such a way as to expose more of its surface area to heat (example: a 2" julienne instead of a slice.) Broccoli can be tricky, too, because the flowers allow a lot of heat to circulate around them while the stems (density again) cook more slowly.
You must start with and maintain a very hot wok or pan!!!!! The larger the wok, the better; you get a larger heated surface area plus a larger area for evaporation of water. Flat pans with short straight or curved sides tend to retain liquid within and have slower evaporation. They also have a slower heat return than a wok. However, if you are not cooking with gas, use a wide saute pan. Woks don't work effectively on electric burners, period. The other thing to remember here is everytime you add an ingredient, your cooking surface cools down. Therefore, reducing the number of additions will contribute to success. I suggest adding oil, meat and a flavor agent (garlic or the like) first, cook 1-2 minutes tossing once or twice. Add all your vegetables next, cook 1-2 minutes, tossing once. Then add your sauce, toss to coat everything; let it come to a boil, then serve. This should take no more than 5-7 minutes, tops.
"Silking" meats is a simple, but effective way of assuring tenderness. Combine 2 teaspoons of oil (sesame is nice for asian), 2 teaspoons of cornstarch and 1 pound cut up meat. You can also add flavorings to the mix, but it isn't necessary. When exposed to high heat the oil and cornstarch form a thin barrier around the surface of the meat allowing heat to cook it, but keeping the moisture inside.
One last thing, don't stir a stir-fry too much. Once or twice is enough for even cooking if you're using a large enough cooking vessel. A lot of the flavor in a stir-fry develops from sugar caramelization of the ingredients. Constant stirring prevents this from happening and allows faster moisture release and soggy results.
I know this was long, but hopefully, helpful.
Check out the article from Cook's I. It goes into more detail and has great recipes.