Heat oil/butter in a heavy pot. Brown the meat pieces well on all sides. Remove and set aside.
In the same pot, sauté onions until golden. Add garlic, ginger, cinnamon, and cloves. Fry gently until fragrant.
Return meat to the pot. Stir in tomatoes and cook for 5 minutes until softened.
Add potatoes, stock, salt, and pepper. Cover and simmer on low for about 45–60 minutes, until the meat is tender. (Add a little more water if it dries out.)
Add the green beans and cook another 20–30 minutes, until beans and potatoes are soft and the stew is thick.
Taste and adjust seasoning (a pinch of sugar often balances the flavor nicely).
Serve hot with white rice or crusty bread.