Drain and rinse the soaked haricot beans. Place them in a large saucepan and cover them with plenty of water. Bring to the boil, then reduce the heat and simmer for about 30 minutes until tender. Drain thoroughly.
Heat the oil and butter in the base of a tagine or a large, heavy-based saucepan over a medium heat, stir in the onions and garlic and cook for 2–3 minutes to soften them a little. Add the drained haricot beans, stir in the harissa, tomatoes and sugar, then cover and cook gently for about 30 minutes.
Stir in half the parsley and coriander, season to taste with salt and pepper and cook gently for a further 5 minutes. Garnish with the remaining parsley and coriander and serve with toasted flat breads, if liked, or as a side dish.