As someone who's tried to make a simple version of minecraft as a hobby project I think I can shed some light.
At its core, procedural engines are built on generating different kinds of noise and then filtering and combining them to produce the types of values that you want.
The values you are looking for depend on how you model the different elements of your world.
As an example, in my game I wanted to generate regions consisting of different types of terrain. I ended up using voronoi noise (http://en.wikipedia.org/wiki/Voronoi_diagram) to split the terrain into regions and then used the cell value as a multiplier for how bumpy the terrain was. The bumpy terrain was generated from smoothing regular white noise. The amount of smoothing was random too so you could have smooth hills or jagged mountains.
At its core, procedural engines are built on generating different kinds of noise and then filtering and combining them to produce the types of values that you want.
The values you are looking for depend on how you model the different elements of your world.
As an example, in my game I wanted to generate regions consisting of different types of terrain. I ended up using voronoi noise (http://en.wikipedia.org/wiki/Voronoi_diagram) to split the terrain into regions and then used the cell value as a multiplier for how bumpy the terrain was. The bumpy terrain was generated from smoothing regular white noise. The amount of smoothing was random too so you could have smooth hills or jagged mountains.
As you can see, you can kinda go wild with it.