After.
Best time to stretch is after a workout because the muscles, tendons, and ligaments are warmer and more elastic, helping to maximize the stretch. It also, along with proper cool down, helps to prevent post-workout blood pooling which can lead to soreness and injury. I will usually only do static or proprioceptive neuromuscular facilitation (if I have a competant spotter) stretching here, because I'm looking to cool down.
So long as you've warmed up properly, it's not necessarily a bad thing to stretch prior to a workout, but if you're stretching cold, you may actually increase your risk of injury during a workout because you're muscles, tendons, and ligaments are colder and less elastic. I stick with dynamic or PNF here.
There is a newer school of thought out there that stretching is completely unnecessary, but most of the research I had reviewed back in college was shoddy at best, comparing small groups, generally high performance athletes. There may be better research out there now, and if anyone has access to links I'd love to read it. It's also based on a rather flawed model of physical activity in other mammals, where as other mammals don't specifically stretch muscle groups with the intent to improve flexibility. I argue that this view does not take into account the generally active lifestyle of the wild animal when compared to the lifestyle of a human, which involves far less physical activity, even in moderate exercisers.