It's funny you should post this because I just brewed a "vanilla cream porter" with my Dad last weekend where I had to consider just the same question. The idea of my beer was to have a full, smooth body that was just sweet enough to compliment the vanilla beans I added to the secondary.
Here are a few strategies you can use to give your beers more body.
1. Mash at a higher temperature (155-158˚F should do the trick).
2. Ferment at a lower temperature (50-60˚F).
3. Add an unfermentable sugar to the wort during the boil. Lactose or *maltodextrine work well (*edit: NOT dextrose as Stauffbier helpfully pointed out).
Options 1 & 2 both serve the same function of reducing the attenuation of the sugars extracted during the mash, but they go about it in different ways. In option 1, you will be reducing the function of the amylase enzymes in the mash (which work optimally at slightly lower temperatures). In option 2, you are purposefully slowing down the yeast to ultimately reduce the total amount of sugars they ferment out.
In option 3, you are actually adding gravity to your wort by adding either of these two sugars, so you must account for this in your recipe formulation.
I personally prefer either option 1 or 3 because you must ferment for much much longer at those low temperatures and you need to be sure of having a constant ambient temperature. For this beer I ended up adding 0.7 lb. of lactose during the last 15 min. of the boil and had an OG of 1.072. One week later the gravity was 1.034 but I hadn't seen bubbles for a couple days so It may only drop another couple gravity points. Needless to say, it had a very full body that wasn't overly sweet (lactose has a fraction of the sweetness as maltose or sucrose)
Here's another thread I came across with some good info too.
Future Brews: "BearShark" American Strong Ale, "Great Scot!" Peated Scotch Ale, Old Ale, Raspberry Chocolate Stout.
Secondary: "Reverend Craig" Bourbon Barleywine (12.6%)