Preheat oven to 375°F (190°C). Cook lasagna noodles according to package directions until al dente, drain, and set aside.
In a large skillet over medium-high heat, cook ground beef, Italian sausage, and onion until meat is browned and onion is soft, about 8-10 minutes. Add garlic and cook 1 minute more, then drain excess fat.
Stir in crushed tomatoes, tomato paste, tomato sauce, water, sugar, basil, oregano, salt, and pepper. Bring to a simmer, reduce heat to low, and cook uncovered for 20-30 minutes, stirring occasionally.
In a medium bowl, combine ricotta cheese, egg, parsley, and salt. Mix until well blended and set aside.
Spread 1 1/2 cups of meat sauce in the bottom of a 9x13 inch baking dish. Layer 3-4 noodles over the sauce, overlapping slightly.
Spread half of the ricotta mixture over noodles, then top with 1 cup mozzarella and 1/4 cup Parmesan. Add 1 1/2 cups meat sauce over the cheese layer.
Repeat layers: noodles, remaining ricotta mixture, 1 cup mozzarella, 1/4 cup Parmesan, and 1 1/2 cups meat sauce. Top with final layer of noodles and remaining meat sauce.
Sprinkle remaining 2 cups mozzarella and 1/4 cup Parmesan over the top. Cover tightly with aluminum foil (spray foil with cooking spray to prevent sticking).
Bake covered for 45 minutes. Remove foil and bake uncovered for an additional 15 minutes until cheese is melted and bubbly.
Let lasagna rest for 15-20 minutes before slicing and serving. This allows the layers to set and makes cutting easier.