I have seen trees 1 block wide and some that are 4 wide and have a huge canopy. What determines the growth of the bigger trees? Is it the space between each planted sapling?
The wiki article has quite a bit of information about how trees grow in Minecraft. Basically, a sapling will attempt to grow at random levels. When it makes this attempt, it randomly chooses a tree configuration based on its type and then if it can grow in that configuration it does.
Jungle trees are a special case because if four jungle saplings are arranged in a 2 by 2 pattern on the ground, then if the area is open enough they will grow into a 2 by 2 tree. These trees can also spawn naturally in jungle biomes.