Preheat the oven to 400 degrees F (200 degrees C). Lightly grease a 9x13 inch baking dish.
Place potatoes into a pot with enough water to cover. Bring to a boil, and cook until tender, about 10 minutes. Drain and mash with milk and butter until smooth.
Heat oil in a large skillet over medium heat. Fry onion and carrots in the oil until starting to soften. Season with salt, pepper and chili powder. Stir in the cream and parsley, and remove from the heat.
Place fish in an even layer in the bottom of the prepared baking dish. Pour the cream and vegetable mixture over the fish, then cover with a layer of mashed potatoes. Sprinkle shredded cheese over the top.
Bake for 40 minutes in the preheated oven, or until piping hot throughout.