Heat the olive oil in a large, heavy-bottomed pot or Dutch oven over medium-high heat. Add the onion, fennel, and garlic, and saute until the vegetables just start to brown. Add the white wine and reduce. Add the orange zest, saffron, tomatoes, potatoes, and fish stock or clam juice. Bring the mixture to a boil.
Continue cooking until the vegetables are tender and the liquid has reduced, about 25 minutes.
Adjust the heat to medium-low and add the mussels and cook for 3 to 4 minutes. Add the shrimp and clams and cook for 3 minutes more. Add the halibut and cook for an additional 4 to 5 minutes.
Before serving, the shells will have opened and the fish will be tender and flaky. Garnish with parsley and top with the faux rouille, recipe follows.
In a bowl, mix together the sour cream, mayonnaise, minced garlic, paprika, fresh lemon juice, salt, and black pepper, to taste and top each serving of bouillabaisse with a dollop of the faux rouille.
Latin Bouillabaisse: Saute 2 bell peppers, seeded and sliced and 1 serrano chile, seeded and minced along with the other vegetables. Add a handful of coarsely chopped fresh cilantro leaves to the broth base. Garnish the bouillabaisse with lime wedges.
Curried Bouillabaisse: Add 1/4 teaspoon ground cardamom, 2 whole cloves, 2 1/2 tablespoons curry powder, 1 teaspoon crushed red pepper flakes, and 1/2 stick cinnamon to the broth base. Replace the fennel with thinly sliced lemongrass.
Chicken Bouillabaisse: Replace the fish with 6 chicken legs that have been sauteed until golden brown. Replace the clam juice with low-sodium chicken broth.