In my most recent playthrough I thought it was rather random as I would have planets with 8 or 10 max population maxed out which were much more unhappy than a planet with 16 or 20 max population maxed out despite approval buildings (of which only one can be built per planet, if you do not count economic buildings, which seem to be more effective at raising approval anyway for some reason...). I thought it might have something to do with planet quality or type and found some relief when I researched the environmental engineering techs, but not much. I also think it oversimplifies things a little for the only factors to contribute to unhappiness are population pressure and planet wealth and that they are both way overblown relative to the measures that a player can do to increase happiness that it becomes almost inevitable for approval to drop on 8 or 10 pop maxed worlds unless you really focus on wealth in the govern panel to the detriment of everything else.
That being said, I would think that certain other things should factor into approval/disapproval such as war (planet came under attack, is under blockade, many people lifted into a troop transport (right now this greatly increases approval since it reduces population pressure, though I do not think a planet would be very happy having 25-75% of its population carried away to die on some alien world, unless they are Drengin, in which case they are probably not too concerned as it is a cultural norm or something), war weariness for peace loving civilizations (or an approval bonus for warmongering civilizations), or if a planet is on the frontier and is undefended), lack of connection to the rest of the civilization (i.e. isolated, granted this makes sense if some sort of internal infrastructure or trade mechanism is implemented, which I think would be a nice touch, like with the freighters from GCII only for between worlds of the same civilization. I think this could be implement with a vessel available right from the get go with the colony ship as it would be serving a similar function, just transporting goods instead of people), some sort of random event such as natural or cosmic disaster (though this should be transient, unless the player fails to act), planet quality or type (i.e. volcanic, barren, or desert worlds have a approval handicap because no one really wants to live there when there are temperate or paradise worlds to live on, unless a civilization just does not care or the planet or population are engineered around that problem), or certain policies enacted and how they may conflict with cultural norms of the civilization.
I realize the game is in Beta still and there is a good chance that some of this is already on the list to be implemented, I just thought I would comment on what I think should be changed in this regard and a some suggestions on what can be done.