A técnica é simples, basta criar divs ou outro elemento com margens diferentes na parte superior e inferior do conteúdo. De forma que uma margem fique menor ou maior que a outra gradativamente.
O CSS fica assim:
/*ROUNDED BORDER DIV*/
#Borda h1, #Borda h2, #Borda p {margin:0 10px; letter-spacing:1px; padding:0;}
#Borda h1 {font-size:2.5em; color:#fff;}
#Borda h2 {font-size:2em;color:#06a; border:0;}
#Borda p {padding-bottom:0.5em;}
#Borda h2 {padding-top:0.5em;}
#Borda {background: transparent;}
.xtop, .xbottom {display:block; background:transparent; font-size:1px;}
.xb1, .xb2, .xb3, .xb4 {display:block; overflow:hidden;}
.xb1, .xb2, .xb3 {height:1px;}
.xb2, .xb3, .xb4 {background:#E5E5E5; border-left:1px solid #CCC; border-right:1px solid #CCC;}
.xb1 {margin:0 5px; background:#CCC;}
.xb2 {margin:0 3px; border-width:0 2px;}
.xb3 {margin:0 2px;}
.xb4 {height:2px; margin:0 1px;}
.Conteudo {display:block; background:#E5E5E5; border:0 solid #CCC; border-width:0 1px;}
E no HTML.
<div id="Borda"> <b class="xtop"> <b class="xb1"></b> <b class="xb2"></b> <b class="xb3"></b> <b class="xb4"></b> </b> <div class="Conteudo"> CONTENT </div> <b class="xbottom"> <b class="xb4"></b> <b class="xb3"></b> <b class="xb2"></b> <b class="xb1"></b> </b> </div>