Bring a large pot of water to the boil. Add potatoes and cook until tender but still firm, about 15 minutes. Drain and mash. Mix in butter, 1 or 2 tablespoons of finely chopped onion and half of the grated cheese. Season with salt and pepper to taste; set aside.
Preheat oven to 190 degrees C
Heat oil in a large frying pan. Add remaining onion and diced carrots; cook until tender. Add lamb and cook until well browned. Stir in flour and cook 1 minute. Add lamb stock. Bring to a boil, reduce heat and simmer for 5 minutes.
Spread the lamb mixture in an even layer on the bottom of an ovenproof casserole dish dish. Top with the mashed potato mixture and sprinkle with remaining grated cheese.
Bake in the preheated oven for 20 minutes, or until golden brown.