Placing an object on the surface

I’m not sure how to do this. I want my objects to lay on the surface and on each other. If the objects were simple, like cube with their faces parallel to the underlaying surface, I could use the snap to surface.
Consider the case of Suzanne: Her chin is the part that will snap to the surface, but I would not consider that laying on the surface. To make the case a bit more complex, there might already be some objects on the surface, so Suzanne’s position/rotation will not only be determined by the underlaying surface itself but also other objects.
The most obvious approach would be, to place all objects above the surface and let them fall down and let the gravity force determine their positioning/rotation. Is there a way to do that or any other way to achieve the same result, maybe through an addon?

Through the dynamics, although to simulate hard-body dynamics, you currently have to run the simulation in the game engine. This process is being changed in the future so that you can run all dynamics simulations in Blender’s editing environment.

You can watch Katie’s video to get an idea

I know it’s for Blender 2.5 but works in the 2.6x series as well.

That just might work out. One thing I have not yet figured out/though trough: I end up with an animation with a key frame for every frame, what I need in the end however is just the one frame, where everything is placed perfectly. I would achieve this by deleting all the other key frames before and after, right?

Don’t see why not.