ID3DX10Mesh is a higher-level wrapper. Internally, I expect it uses ID3D10Buffers and other things to render the mesh, but it keeps track of all the data for you and provides convenience functions that implement more complex operations. The upside is that you don't have to implement all that stuff yourself; the downside is the same one as with all higher-level wrappers, that if you want to do something outside of what it the class was designed for, it may be inefficient or even impossible.
On the other hand, ID3D10Buffer is a very low-level object that basically just represents a chunk of VRAM in which you can store more or less arbitrary data, and which you can use as an input to shaders. When used to store vertex and index buffers they can be used to draw a mesh, but they also store shader parameters (in which case they're called "constant buffers").
Xin them (likeID3DX10Mesh, versusID3DBuffernote with noX) are from the D3DX utility library and provide some kind of advanced functionality. – bobobobo Nov 21 '12 at 20:49