If you are doing bodybuilding, or powertraining you should definitely eat within two hours after the workout. Your body, muscles, are in great need of protein, egg white, and -yes- even calories, to recover. It will take whatever energy supplies in your body to recover.
If you workout a lot, and don't eat enough, you will not put on any muscle.
The thing you need to think about is: how many calories/protein/egg whites does my body need - how hard was the work out? A normal full grown man should have an intake of 2000 - 2300 calories, depending on daily activity. You need to raise that to 2800 - 3000 if you do serious work outs, like body building.
If you do long distance running, or swimming, the problems you're most likely going to have are sore muscles, and cramps. To avoid these, you can eat bananas, and drink milk. Also, taking a very light extra dose ( available in powder ) orof Creatine helps. Creatine keeps water in your muscles, and so lessens cramps and soreness.
If you're on a yoga class, i would recommend avoiding heavy meats, like Steak, ... and switch to chicken, which is easier to digest, and will not give you that "blown belly" feeling. Also look at what kind of vegetables you're eating. Some vegetables will give you more gas than others.