In a large pot, heat the olive oil over medium heat. Add the chopped onion and minced garlic, and cook until the onion is translucent and the garlic is fragrant.
Stir in the paprika and dried thyme.
Pour in the chicken or vegetable broth and bring it to a boil.
Add the torn pieces of stale bread to the pot. Reduce the heat and simmer for about 10 minutes, stirring occasionally, until the bread has absorbed most of the broth and becomes soft.
Using a spoon or potato masher, mash the bread into the broth until the soup reaches a thick, porridge-like consistency.
Crack the eggs into the soup, stirring gently to cook them. The eggs should cook in the hot broth and become softly poached.
Stir in the chopped cilantro or parsley. Season with salt and black pepper to taste.
If using cheese, stir it in until melted and combined.
Ladle the soup into bowls and serve hot.
Enjoy your meal!