Finely chop the onion and garlic.
Cut the beef into bite-sized pieces.
Cut the carrots and red pepper into small pieces.
Heat some oil in a large saucepan and brown the beef cubes, then transfer them to a plate.
Add more oil to the pan and gently sauté the onion and garlic until soft.
Add the chopped tomatoes, carrots and red pepper.
Stir for a minute, then add the chipotle, tomato purée and the spices, then stir again for a minute or so.
Add about 750 ml water and the stock cube.
Bring to the boil, then turn down the heat, put the lid on and cook for 30 minutes.
Meanwhile, chop the potatoes into bite-sized chunks. Lightly char the corn on the cob on a griddle pan, then let it cool and cut off the kernels.
When the beef is tender, add the potatoes to the stew and cook for a further 20 minutes or so, until the potatoes are cooked through.
Add the drained beans and corn to the soup and cook for another couple of minutes to warm through.
Serve with chopped coriander leaves scattered on top.