Prepare the lamb shanks: Dry the lamb shanks with paper towels so they brown well. Add salt and pepper to taste.
Brown the lamb shanks: In a large Dutch oven or heavy-bottomed pot, heat olive oil over medium-high heat. Add the lamb shanks and brown them on all sides, about 8-10 minutes. Take off the shanks and put aside.
Cook the vegetables: In that same pot, add the diced onion, carrots, and celery. Cook until softened, 5 to 7 minutes. Add the garlic and cook for another minute, until fragrant.
Deglaze the pot: Add the non-alcohol stout (or alternative dark beer) to deglaze the pot, scraping any browned bits off the bottom. This adds flavor.
Add broth and seasonings: Add the beef or vegetable broth, tomato paste, rosemary, thyme and bay leaves; stir to combine. Season with salt and pepper. Pour in some balsamic vinegar for added depth.
Braise the lamb: Return the lamb shanks to the pot and nestle them in the liquid. Add to a simmer, cover, and place in a pre-heated oven at 325°F (163°C). Braise for 2 1/2 to 3 hours, until the lamb is tender.
Finish the sauce: Once braising is complete, you take out the lamb shanks and set them aside. For a thicker sauce, make a cornstarch slurry by mixing 1 tablespoon cornstarch into a little cold water. Whisk into the liquid and simmer until thickened.
Serve: Drizzle the sauce over the lamb shanks and serve with the mashed potatoes, roasted vegetables, or whatever else you want.