I decided to go with an icosahedron for the base shape of my planets. With a simple library of functions to procedurally generate the shape and different sizes and levels of tessellation. Here are some images of some shapes i can generate with the function.
Though now I need to get some work done on generating the terrain height data. For the time being I am sticking with a base Perlin noise implementation and simply modifying the data generated to get different effects. Though ran into a little issue as I am using a cube texture to map my terrain data onto my planets. So I needed to use 3D perlin noise instead of 2D so that the edges of the cube texture match up more easily, as they could factor there neighbours in 3 dimensions maintaining a nice smooth effect.
Below are some examples of modifications made to the original Perlin noise data to get different effects. Except the first, which is just a normal Perlin noise image.