To make the sauce, heat oil in a large stockpot over medium heat. Add pepperoni and sausage; cook until lightly brown. Move meat to one side of the pot. Add onion and garlic in the cleared area, and sauté until tender. Add tomato paste and water. Stir well. Hold a food mill over the pot and puree the whole tomatoes, or put your hand in each can and squeeze until tomatoes are in small pieces. Add bay leaves, basil, salt, and pepper. Bring sauce to a boil; Cover, and reduce heat. Cook on medium-low heat for about 2 hours. Stir occasionally. Adjust salt as needed.
To make the meatballs, cover two slices of thick bread (including the crust) with milk. Let rest until bread is completely tender, about 4-5 minutes. Squeeze bread until moist but not dripping wet. Tear or chop bread into small pieces. In a medium size bowl, add bread pieces and remaining ingredients. Use your hands to mix the ingredients. If mixture seems a little dry, add a couple of tablespoons of milk. Shape meatballs into 2-inch balls.
To cook the meatballs, increase heat to medium-high. When the sauce begins to boil, drop in the meatballs one at a time. Do not stir until all meatballs are in the sauce. Reduce heat to low. Simmer for about 45 minutes, stirring occasionally.
To cook the rigatoni, bring 5 quarts of water to a boil. Add salt and Rigatoni. Stir, and reduce heat to medium-high. Cook Rigatoni al dente (about 12-14 minutes). Drain well.
To serve, remove the meats from the sauce and place on a serving dish. In a large pasta bowl, mix three or four ladles of sauce with the Rigatoni. Serve extra sauce in a small bowl. Sprinkle pasta with Parmigiano-Reggiano or Pecorino Romano cheese.