Place the prepared lamb or mutton into a casserole dish that has a tight-fitting lid. Add the cinnamon, cloves and peppercorns, and enough cold water to just cover the meat. Cover the pan tightly (line the edge of the lid in aluminium foil to increase the tightness if necessary). Bring to the boil, then reduce the heat to low and simmer for 30 minutes.
Partly uncover the pan, allowing steam to escape and the liquid to reduce, and continue to simmer on the lowest heat for a further hour.
In a separate pan, heat the oil and cook the onions gently until soft, giving them a good seasoning of salt. Add the flour to the onions and stir for 3–4 minutes, or until the flour is absorbed into the oil and is cooked.
Add the onion mixture to the meat pan and mix well. Bring to the boil, then reduce the heat to low and simmer for 10–15 minutes, stirring, until well combined and thickened. Add the coconut milk and simmer for a further 30 minutes, stirring frequently. Check the texture of the lamb or mutton: it will go from being quite hard to very tender quite suddenly; this is the point at which the stew is ready.
When the meat is tender add the cooked potatoes, and simmer for a minute until the potatoes are warmed through. Taste and adjust the seasoning if necessary. Serve with crusty bread and some vegetables.