Preheat the oven to 375°F (190°C).
Heat a large skillet over medium-high heat. Add the ground beef and cook 2 minutes, crumbling with a wooden spoon. Add the onion and cook, stirring often, until the meat is browned and the onion is soft, about 5 minutes. Stir in the taco seasoning to coat.
Add the water and cook 2 minutes, scraping up any browned bits. Remove from heat and set aside.
Brush a 9x13 baking dish with melted butter. Line the bottom and sides with 5 tortillas, overlapping them, and letting the excess hang over the edges. Sprinkle with shredded cheese, then top with cilantro and tomatoes. Spoon sour cream into a plastic bag and squeeze it over the tomatoes.
Arrange the tostada shells over the sour cream, overlapping to fit. Spread with nacho cheese sauce.
Pour the beef mixture over the cheese sauce in an even layer.
Place the remaining tortilla on top, then fold the overhanging tortillas up and over to enclose it. Brush with the remaining butter and press down any loose ends.
Bake until golden brown and toasted, about 30 minutes.
Let stand 5 minutes, then carefully invert onto a serving board or cutting board. Cut into squares. Serve with lettuce, guacamole, and hot sauce.