There's quite a few methods, especially with modern browsers.
The simplest is light/dark borders (increase pixels for a chunkier look):
.box {
border-top: #ccc 1px solid;
border-right: #ccc 1px solid;
border-bottom: #777 1px solid;
border-left: #777 1px solid;
}
For anything more complicated then background images can be used on the box. This provides the best browser compatibility. The All-Expandable Box has a good demo.
With CSS3 you can add rounded corners, drop shadows and all sorts of effects.
Also if you're using jQuery elements in widget boxes, then the jQuery UI packs come with some nice skins and easy grouping/boxes.