Pour the olive oil into a Dutch oven or large stockpot over medium-low heat. When it shimmers, stir in the onion, garlic, and salt. Cook, stirring occasionally, until softened but not browned, 5 to 6 minutes.
Stir in the cumin, coriander, caraway, pepper, and tomatoes and cook until the tomato has thickened slightly and the spices are well incorporated, about 2 minutes.
Add the fava beans and 6 cups water. Bring to a boil, then reduce the heat to low, cover, and cook until the beans are creamy and their skins have softened, 2 to 3 hours.
Uncover, increase the heat to medium, and continue cooking until the liquid is slightly reduced and tastes very rich, 15 to 20 minutes.
To serve, spoon the beans into a bowl and top with the parsley and a squeeze of lemon.