Preheat the oven to 350°F. Spray a 9x13 inch pan with cooking spray. Set aside.
In a medium skillet, brown the ground beef and the onion. Drain and set aside.
Meanwhile, in a medium saucepan, melt the butter over medium low heat. Stir in the flour. Slowly add in the beef broth and milk, mixing until smooth. Bring to a gentle boil, cooking until thickened.
Remove from heat and add in the cream of mushroom soup and water.
Layer the bottom of the prepared dish with 1/2 of the potatoes, then 1/2 the soup mixture, then 1/2 the ground beef mixture. Repeat with the remaining potatoes, soup mixture and ground beef.
Sprinkle the cheese over the mixture. Cover with aluminium foil and cook in the preheated oven for 75-90 minute. Remove and cook uncovered for an additional 5 minutes.