With the Modular Tree Addon you can generate a tree in the node-editor. It has it’s own node editor called Mtree. The amount of nodes and options might be overwhelming but that doesn’t have to be. To get the hang out of it a bit faster, here this little introduction.
In the node-editor you start with a Trunk node, a Branch node and the Tree parameters node. Connect the Trunk node to the Branch node and that is it. With this you can make a lot of trees (without leaves yet, comes later). At first the tricky part is to find out what does what. Keep in mind that the parameters in the Trunk node only affects the Trunk. And the settings in the Branch node only affects the branches. Press on Create Tree in the Tree Parameters node, and a preview tree will show up. Every time you change settings you press the Update Tree button.
If you want to have leaves, model a simple leave (and put later a subsurf modifier on it). Use the checkbox Create Leaves and pick your leave. Even a much better idea is to add a Twig node. Press in the Twig node on Execute and use that as leave instead.
Next is the grow node. What that does is extending the branches. So you have the trunk (Trunk node) and it’s branches (Branch node) and if you want you can refine the branches for a more high-poly tree with the Grow Node. That is pretty much it. Yoji on Blenderartists.org made a very nice tutorials, and it’s worth to take a look.
You can download the modular tree on: