Preheat oven to 375 degrees F (190 degrees C). Grease a large casserole dish.
Heat 2 tablespoons butter in a large heavy skillet over medium heat. Saute onions and parsley until onion is soft and translucent. Increase heat, add lamb, and cook until evenly brown. Drain excess fat, and set aside.
In a large bowl, combine tomatoes, Italian seasoning, salt and pepper. Chop tomatoes, and mix well with seasonings. Set aside.
In a saucepan over medium heat, melt 2 tablespoons butter. Stir in flour until smooth. Whisk together milk and egg, then gradually whisk into flour mixture. Cook, stirring constantly until thick and smooth. Remove from heat, and stir in grated cheese.
In casserole dish, place 1/3 of potato slices on the bottom, covering as well as possible. Top with half of meat mixture followed by half of tomato mixture. Repeat layers, ending with a layer of potatoes. Spread cheese sauce evenly over the top.
Cover, and bake in preheated oven for 1 1/2 hours. Remove cover, and bake 30 minutes, or until lightly browned.