In a large skillet or Dutch oven, cook the ground beef and Italian sausage over medium-high heat until browned. Drain off excess fat.
Add the chopped onion and minced garlic to the skillet. Cook until the onion is softened, about 5 minutes.
Stir in the crushed tomatoes, tomato sauce, tomato paste, water, basil, oregano, salt, pepper, and optional sugar. Bring to a simmer, then reduce heat and cook, covered, for at least 15 minutes, stirring occasionally. For a richer flavor, simmer for longer.
While the sauce simmers, prepare the cheese filling. In a medium bowl, combine the ricotta cheese, egg, Parmesan cheese, chopped parsley, salt, and pepper. Mix well.
Preheat oven to 375°F (190°C).
If using uncooked lasagna noodles, cook them according to package directions. Drain and rinse with cold water to prevent sticking.
To assemble the lasagna, spread about 1 cup of the meat sauce in the bottom of a 9x13 inch baking dish.
Arrange 3-4 lasagna noodles over the sauce, slightly overlapping them.
Spread half of the ricotta cheese mixture evenly over the noodles.
Spoon about 1.5 cups of meat sauce over the ricotta mixture.
Sprinkle about 1/2 cup of mozzarella cheese over the sauce.
Repeat the layers: noodles, remaining ricotta mixture, 1.5 cups meat sauce, 0.5 cup mozzarella cheese.
Top with a final layer of noodles, the remaining meat sauce, and the remaining mozzarella cheese.
Cover the baking dish tightly with aluminum foil. Bake for 25 minutes.
Remove the foil and bake for an additional 20 minutes, or until the cheese is melted and bubbly and the edges are golden brown.
Let the lasagna stand for 10-15 minutes before slicing and serving.