Tear stains can be caused by several different things such as dog food, humidity, and minerals in the drinking water. There is no one way to get rid of them. There are a few things you can do that will or will not work. If one method does not work over time, try another method. Usually the stains seem to come from the type of food the dog is eating. We had this problem, so we switched to the food I made note of in question #2. Wallah! No more stains.
Regular bathing and grooming goes a long ways to help with tear stains as well.
If you think you need a little extra help, then there is Tylan. This is an antibiotic used in the poultry industry to make chickens lay the nice white eggs you buy in the supermarket. Do not put it in the dogs water. This stuff is extremely bitter and foul tasting, and you do not want to prevent your dog from drinking water. For the same reason, be careful not to get it in your mouth, eyes, or skin. Not too tasty! You can simply put a little on your dogs tongue, and then feed the dog so he / she can get rid of the taste. If you put it on the food you will eventually teach your dog not to eat. You do not want that. When I say just a little, I mean literally a smidge. Give this once a day for 2 to 3 weeks, and then stop, wait a couple of weeks at least, and repeat. This stuff is expensive, but it has worked for us and others.
Then there are always the creams and ointments you can buy. Do not waste your time or money. These things may fade the stains, but will not get rid of them.
Never, ever, get the bright idea of using bleach on your dog to get rid of stains! If you do, be ready for me to come over and do it to you as well. Please, no bleach! I actually have heard of a few people trying this. Not the brightest bulbs in the box.