I would like to know what is the sense of using st_buffer operation. In PostGIS reference guide there is only the syntax and a short description of this operation.
Could you give some examples to understand the advantages of this operation?
As @Underdark comments ST_Dwithin is the recommended way of finding geometries at a distance. In many other gis-systems the buffer method is the only way but building buffers is quite costly.
But there is other use cases when you need to buffer. One reason can be to visualize a buffer. If you for instance wants to show the area closer than 100 meters from a highway, then you can make a buffer.
Another case is if you want to get the area 100 meters from the highway to be cut out from another map. Say you have a map showing areal usage and you want to analyze how much of the area closer than 100 meters from the highway is forest and how much is agriculture area. Then you make a buffer and creates an intersection with the area usage map.
There is an example on page 8-10 on this tutorial:
http://postgisonline.org/map.php?tutorial=mixed_examples.html
OpenGeo provides a pretty good summary of ST_Buffer. Note the ability to pass a negative buffer radius.
The buffer function is also a useful work around at times. By passing a buffer radius of zero, you can build a footprint of a collection of geometries or "repair" an invalid polygon geometry.
ummm to do a buffer? That's all it really does.
I wouldn't really call this a short description http://www.postgis.org/documentation/manual-svn/ST_Buffer.html
A use case is if you want to select all the objects in one table that are within 20m of each object in another table.