When a sapling is about to grow into a tree (from nature, or from bonemeal, or any source) it first checks the biome. If the sapling is growing in a biome that does not natively spawn those trees, the growth is blocked, and it is turned into a Dead Bush.
Below I list each tree and where they are allowed to grow. Also included are variants (for example, if I list Jungle, then of course Jungle Edge is included)
Dark Oak Saplings
In the newest versions, all of the above biomes are listed in the config file, so you can customize this any way you wish, and also use the Nether/ The End / and biomes from mods. See the config file for details.
This mod also tries to spawn sapling items that are about to despawn, if they are on grass/dirt. This end up mimic-ing natural forest growth, if you chop down trees but the leaves despawn naturally, and then trees just grow. This is also controllable in the config file
UPDATED: Fixed crash that only happened in newer versions of forge 1.9