Minor Edit:
I made an assumption here that you are looking to do your physics simulation / collision detection on the resulting mesh that you have generated rather than on say ... your point cloud (voxel) data (another assumption made that you are using voxels too) as this is the normal scenario.
Such collision detection on voxels would be problematic at best.
End of edit
How do I do collision detection on the resulting mesh?
The simplest way to answer this is ...
How would you do collision detection on any mesh?
Throw a raycast in the direction you intend to perform your collision check then "pick" the vert that was hit and decide what action you want to take.
I don't know what technology you are using so it's hard to be too specific but here's an example of how its been done using OpenGL ...
3D Ray Casting / Picking
However based on this comment in your question ...
Example of usage is throwing a box onto the terrain and it should roll
and bounce approximately like it would in the real world.
... I would say that without realising it what you need is a little more than collision detection, you need a physics simluation engine that can handle complex interactions between collisionable objects.
I went down this route when faced with the same problem ...
Most people because of the complexity of the math pull in a physics engine to their game engine code handle that for them, in my case I am using SharpDX and I chose to sit BulletSharp on top of that to handle physics simlations like rolling a mesh about on my terrain in the manner you describe.
The Bullet engine is great and comes with a ton of examples that can help you get started and has other wrappers than the one i'm using ...
https://code.google.com/p/bulletsharp/
I would give you a code sample here on exactly how all this clicks together but the code can be quite lengthy and I think the guys that provide Bullet are better placed to give you better description and a full working demo project to show this in action.