0) make sure you're using a constant step size. If you vary your step size at all, you will introduce jitter because of the ODE integrator, even for bodies at rest (because "rest" means that the ground contact cancels out the gravity acceleration for the current time step).
Once you have a fixed time step, you may need to try a few other things:
1) add a small dampening force and torque each step -- torque is more important than force, but both help:
MyVector4 lvel, avel; dBodyGetLinearVelocity( body, lvel ); dBodyGetAngularVelocity( body, avel ); lvel *= -0.02; avel *= -0.02; dBodyAddForce( body, lvel ); dBodyAddTorque( body, avel );
There may be some support in the unstable ODE for dampening now; I haven't kept up with patches.
2) you may need to slightly increase the tolerances for auto-disabling, if bodies don't become auto-disabled on their own after the first two changes.
3) All the standard cautions: Make sure you're using dContactApprox1 for your contact friction, that you're creating enough contacts to put bodies at rest (4 for most bodies; ~20 for trimeshes); that you filter contacts to remove duplicates, and if you reduce contacts, make sure the "extrema" in each direction are kept; make sure that you have a CFM value of at least 1e-4; with float precision even higher might be advisable (1e-3 or so).