This a really good workflow from Brave Rabbit "polyScatter – Spread objects across a surface".and is FREE

http://www.braverabbit.de/playground/?p=474
Just need set scatter at the main mesh. and that's it...
Look some results...with speed tree with high-level tree with 4 types.
https://vimeo.com/123667439
https://vimeo.com/123479353
My only trouble is to make work the animation with the FBX cache from speed tree look like doesn't work.

hope you like guys.