Preheat your oven to 375°F (190°C).
Bring a large pot of salted water to a boil. Cook the lasagna noodles according to the package instructions until al dente. Drain and set aside.
In a large skillet or saucepan, cook the ground beef or Italian sausage over medium heat until browned. Add the diced onion and minced garlic, and cook until softened, about 5 minutes.
Stir in the crushed tomatoes, tomato paste, dried basil, dried oregano, salt, black pepper, and crushed red pepper flakes (if using). Simmer the sauce for 10-15 minutes to allow the flavors to meld together.
In a mixing bowl, combine the ricotta cheese, egg, and grated Parmesan cheese. Mix until smooth and well combined.
To assemble the lasagna, spread a thin layer of meat sauce on the bottom of a 9x13-inch baking dish. Arrange 4 lasagna noodles on top of the sauce, slightly overlapping if necessary.
Spread half of the ricotta mixture over the noodles, followed by a layer of meat sauce and a sprinkle of shredded mozzarella cheese. Repeat the layers, ending with a final layer of meat sauce and shredded mozzarella cheese on top.
Cover the baking dish with aluminum foil and bake in the preheated oven for 25 minutes.
Remove the foil and bake for an additional 10-15 minutes, or until the cheese is melted and bubbly and the edges are golden brown.
Allow the lasagna to cool for a few minutes before slicing. Garnish with fresh basil leaves if desired.