A buffer is a very common GIS operation. PostGIS can create polygonal buffers from any geometry with configurable distance and approximation levels.
For example, a simple 1,000 meter buffer from a Point looks like the following:
SELECT ST_Buffer(
(SELECT wkb_geometry FROM points WHERE osm_id = '253525668'),
1000);

The first argument is an input geometry, and the second is the buffer distance in the units of the geometry's coordinate system.
The default buffer uses eight segments to approximate a quarter circle. If it's too coarse, more segments can be introduced at the expense of processing power:
SELECT ST_Buffer(
(SELECT wkb_geometry FROM points WHERE osm_id = '253525668'),
1000,32);
We can also do the opposite, such as when we create an octagonal buffer with only 2 segments per quarter circle:
SELECT ST_Buffer(
(SELECT wkb_geometry FROM points WHERE osm_id = '253525668'),
1000,2);

To replicate the dissolve result option found in Desktop GIS software, ST_Buffer can be used in conjunction with ST_Union. For example, to create a 200 meter buffer zone from all rivers as one big MultiPolygon, enter the following:
SELECT ST_Union(
ST_Buffer(wkb_geometry,200)
) FROM lines WHERE waterway = 'river';
