Season the pork shoulder with salt and pepper.
In a Dutch oven or casserole set over moderately high heat, heat the oil until hot. Add the pork and brown on all sides. Transfer pork to a platter and discard all but 1 tablespoon fat from pan. Add leek, carrots and celery stalks to pan and cook over moderate heat, stirring occasionally, for 5 minutes. Add garlic cloves, shallots, thyme, parsley and salt and pepper and cook the vegetables until golden. Transfer vegetables to platter. Deglaze pan with balsamic vinegar and reduce by 2/3. Add port and cabernet and reduce by half. Return pork and vegetables to pan, add stock and tomato paste and bring to a boil on top of the stove. Cover pan with foil and lid and transfer pan to a preheated 350 degree oven. Cook for 2 1/2 to 3 hours, or until very tender. Remove pork from oven, remove lid and loosen foil. Let cool for 1 hour in cooking liquid at room temperature or in refrigerator overnight.
Discard all fat from surface and transfer pork to another pan. Strain cooking liquid and add enough to just cover pork. Bring to a boil and simmer, covered, until heated through.
Meanwhile, reduce remaining cooking liquid over high heat until liquid is thick enough to coat the back of a spoon. Season with salt and pepper. Cut pork into 1 1/2-inch thick slices. Swirl butter into sauce.