For the Beans: In a large bowl, cover beans with 8 ½ cups (2 L) water. Add salt and baking soda, stir briefly to combine, then cover loosely and let soak at room temperature at least 8 and up to 12 hours. Drain the beans, then rinse well under running tap water.
For the Stew: In a large pot or Dutch oven, heat oil over medium heat until shimmering. Add onion, garlic, tomato paste, cumin, paprika, turmeric, ginger, salt, and pepper, and cook, stirring occasionally, until fragrant, about 3 minutes.
Add lamb and mix to combine, then let cook, stirring occasionally, until meat is lightly browned, about 5 minutes.
Add drained and rinsed white beans, grated tomatoes, and stock. If beans aren’t completely covered with liquid, add enough water to just cover them. Bring to a boil over high heat, then reduce heat to low; cover, and cook, stirring occasionally and adjusting heat as needed to maintain a gentle simmer, until lamb is tender and beans are fully cooked and creamy, 1 ½ to 2 hours. As beans cook, add water if needed to avoid scorching and to maintain a stew-like consistency.
Season to taste with salt. Serve in shallow bowls with crusty bread on the side. Drizzle with olive oil and garnish with cilantro, if desired.
