Heat olive oil in a large skillet or shallow Dutch oven over medium heat. Add onion and cook until soft and translucent, about 5 minutes.
Stir in garlic, cumin, paprika, coriander, cinnamon, turmeric, and cayenne; cook until fragrant, about 30 seconds.
Add ground lamb, season with salt and pepper, and cook until browned, breaking it up with a spoon, about 6 to 8 minutes.
Stir in crushed tomatoes, tomato paste, and water or broth. Bring to a simmer, then reduce heat to low and cook uncovered for 20 minutes, stirring occasionally.
Stir in cilantro and parsley. Taste and adjust seasoning as needed.
Using a spoon, make four small wells in the sauce and crack one egg into each well.
Cover and cook until egg whites are set but yolks are still soft, about 6 to 8 minutes.
Remove from heat and serve hot with some crusty bread or couscous. straight from the pan.