Stretching serves the purpose of maintaining/increasing your range of motion (if a muscle on one side is too tight, the muscle on the other side will not close / contract properly), and keep the flexibility in the muscles, ligaments and tendons to prevent injury. Also, it simply keeps us moving more comfortably and efficiently. In extreme cases, muscles and ligaments that are too tight can restrict or alter the position of parts of the skeletal system. So - if you stretch before a workout, make sure it poses as a warm-up, like dynamic stretching. Dynamic stretching means stretching that is done while in steady movement to ever so slightly increase the range of motion, while pumping blood through the muscles. DO NOT do static stretching before a workout (I see this performed often and it HURTS me to see). Static stretching is when you hold a muscle in a stretch, and wait for it to stretch and release further on its own. It can reduce your strength and power in the workout that will follow. Static stretching is to be done AFTER a workout - or at a later time in the day, as long as you have properly warmed up first.
If you pulled an elastic out of the freezer, would you stretch it? No. Make sure the muscles are warm before you attempt to elongate them.
To sum up: Dynamic stretching before a workout, OR simply a proper warm-up, and static stretching after a workout to restore range of motion and prevent excessive muscle tightness.
Dynamic Stretching: Increasing range of motion while in movement Static Stretching: Releasing a muscle to a comfortable range and allowing it to continue to release on its own, while held still.