In a large Dutch oven over medium-high heat, melt butter. Add onion, leek and fennel, cooking until softened, approximately 5 to 8 minutes, stirring occasionally.
Add fish stock and potatoes. Season with salt and pepper, then bring the mixture to a boil. Reduce heat and simmer until the potatoes are tender, approximately 20 minutes.
Add the salmon and simmer until just cooked, approximately 3 to 5 minutes.
Stir in milk, cream, dill, garlic powder, and cayenne pepper. Cook until warmed through but don't bring the mixture to a boil. Taste and adjust salt and pepper as desired.
Serve warm with crusty bread and white wine.