Drain the beans and add to a large saucepan or casserole. Cover with fresh water. Place over a low heat and cook gently till the beans are tender, 45 minutes to 1 hour.
Heat the oil in a frying pan over medium high heat. Add the bacon and sausage and cook till browned. Transfer the meats to a bowl and reserve some of the fat in the frying pan.
Place the same frying pan back over the heat. Add the onion and cook and stir till the onion is golden brown. Set aside with the bacon and sausage.
Once the beans are tender, add the bacon, sausage, onion, bay leaves and allspice. Bring to a simmer, then add the tomatoes, garlic, marjoram, salt and pepper. Continue to simmer gently, adding water if needed.
In a small pan, heat the butter over low heat. Once melted, add the flour and stir well, till smooth. Remove from heat and add to the bean mixture along with the paprika, if using.
Simmer the stew for a further 15 minutes before serving.