Heat a large enough Dutch oven or roasting pan over medium-high heat. Add 1 tablespoon of the butter with 1 tablespoon of the oil. When the butter melts, add the onion, carrots, garlic and ginger.
Reduce the heat to medium and cook until the vegetables begin to soften. This should take about 10 minutes. Be sure to stir every once in a while so the vegetables don't burn. Remove the vegetables from the pan and reserve.
Add the remaining 2 tablespoons of butter to the pan along with 1 tablespoon of oil and turn up the heat to medium high. When the butter melts, start browning the beef shanks on all sides. Don't overcrowd the pan. If you can't fit them all into the pan without touching each other, brown some separately. When all the shanks are brown, remove them and reserve them on a large plate.
Reduce the heat once again to medium and add the coriander, cumin, turmeric and red pepper flakes. All you want to do is have the spices release the oils from them. This should take about 1 minute.
Add ½ cup of the brown stock and stir while trying to scrape up and brown "stuff" from the bottom of the pan.
Add the remaining 1-¼ cups of brown stock and the coconut milk, stir and bring to a boil.
Add the shanks back to the pan and then the vegetables.
Next add the cheesecloth filled with spices. Cover and place the Dutch oven or pan into the preheated oven and cook (braise) for 2 ½ to 3 ½ hours until the meat is tender and shrinks away from the bone.
When the shanks are tender, carefully remove them from the pan to a large platter and cover with foil. If the braising liquid is overly greasy, use a spoon to remove some of the fat.
On top of the stove, reduce the braising liquid over medium-high heat until it starts to thicken. Remove the cheesecloth with spices, taste and adjust seasoning with salt and pepper.
Serve the shanks over mashed potatoes, basmati rice or noodles and then spoon some sauce over everything and finish the plate with a garnish of cilantro.