Soft Body - Preserve Volume when deformed
Meshes are typically created 'hollow', as an outer surface only. This means that the soft body simulation normally treats the object as an outer shell and this means it can easily be deformed into its own volume.
In order to prevent this can can add internal structure (just like a 'real' object) which can oppose any crushing forces to retain the object's volume.
For example, for a cylinder you can add internal structure as shown :

The soft body forces for the internal edges will act to prevent the mesh from being crushed. In order to further increase the internal forces you can enable Soft Body Self Collision in order to prevent those internal vertices from being pushed closer together, thereby retaining the volume.
Note : The above mesh was created by the following steps :

Add a Circle
In Edit mode, select all and Grid Fill
Select all and delete 'Only Faces'
Extrude to create a 'section'
Optionally remove internal faces (only faces)
Use Array modifier to replicate into a cylinder
Apply modifier and Remove Doubles to ensure joined together

Note that the additional internal vertices and edges (and especially the self-collision) will significantly affect the soft body simulation time.

EDIT : For an alternative method of creating internal geometry, see Create internal mesh for object