Boil the sweet potato cubes in a medium pot of salted boiling water for 15 minutes, or until cooked through and easily pierced with a knife. Add the peas during the last 2 minutes of cooking time. Drain and set aside.
Heat the butter and olive oil in a heavy frying pan over medium-high heat. Add the red onions and fry until translucent, about 5 minutes. Add the tomatoes, garlic, chiles, cumin and allspice and cook for another minute. Add the snoek and the drained potatoes and peas; stir gently until well combined. Remove the pan from the heat and set aside.
Meanwhile, poach or soft-boil your eggs (or fry--it's up to you).
Sprinkle the dill, lemon juice and zest, and a generous pinch of salt and pepper over the smoorsnoek, and scatter with the avocados. Serve with slices of fresh crusty bread and top with an egg.