Heat the ghee/oil in a large saucepan over medium heat. Add the onion and sauté for 6-8 minutes, stirring occasionally until caramelised.
Add the garlic and fry for 2 minutes, stirring frequently.
Add the tomato purée, salt, pepper, cumin, ground coriander, and chilli powder. Stir well. Add the tinned tomatoes and stock. Stir well.
Increase heat and bring to a gentle simmer. Add the beans and chickpeas, stir well and simmer gently for 20 minutes, stirring occasionally.
Add the balsamic vinegar and fresh coriander. Stir well and add more salt and pepper, if required. Leave to stand for 5 minutes. Serve topped with cheese and sour cream.
Serving suggestion: Serve on a bed of steamed rice with leafy green vegetables.
Store any leftover chilli in an airtight container and refrigerate for 4 days or freeze on the same day.