How do you rotate an object so that a particular face is parallel to the ground?
Not sure if there is a more efficient way to do this but the method I most frequently use is through an auxiliary empty object to snap to the surface.


Add a Plain Axis Empty to your scene
Activate Snapping and Align rotation with the Snapping Target
Align the empty with the part of the surface that is to become the base
Now you will have to manually copy the three axis rotation from the empty to the object inverting them. That means if your empty's rotation is 10,50,30 you will have to paste in your target object -10,-50,-30
Apply the rotation to your object

Adjust it accordingly to fix the orientation by rotating 180º in needed axis.




Side note: It is usually helpful if your "flat face" that is to aligned to the ground is slightly subdivided so there's a few extra vertex for Blender to snap to.