Whether or not you eat before a workout is relatively unimportant, but there has been a lot of debate about working out in a "fasted" state (such as a morning run before breakfast). It's a method used by bodybuilders, models, the military, etc. to keep lean.
According to this article, which has some very good information and links to various studies, there is a fair amount of evidence to suggest that doing cardio in a fasted state can increase fat-burning by up to 20%, but the long-term effects are less noticeable. In addition, resistance-training in a fasted state may hinder your performance and cause a breakdown of muscle fibers.
It is better to eat and drink immediately after exercise, especially
after prolonged or high-intensity workouts.
Generally, you want to take in about 20g of protein and some carbs after any workout, particularly resistance-training, sprints, and high-intensity cardio. This is the point at which your muscles are in their greatest state of recovery, and having a high-protein environment is important for that. Some people may choose to take BCAA in lieue of a post-workout meal. As long as you eat some complete protein or take BCAA, it should speed up muscle-recovery. If you take creatine, it's also recommended that this be done immediately after a workout.