Preheat your oven to 375°F (190°C). Grease a 9×13 inch baking dish with cooking spray.
Cook the spaghetti noodles according to the package instructions until al dente. Drain and set aside.
In a large skillet, cook the ground beef or turkey over medium-high heat until browned and cooked through, breaking it apart with a spatula as it cooks.
Add the diced onion to the skillet and cook for a few minutes until softened.
Stir in the taco seasoning mix and cook for another minute until fragrant.
Add the salsa to the skillet and stir to combine with the meat mixture. Let it simmer for a couple of minutes.
In a mixing bowl, combine the cooked spaghetti noodles with the sour cream, shredded cheddar cheese, and shredded Monterey Jack cheese. Season with salt and pepper to taste. Mix until well combined.
Spread half of the spaghetti mixture evenly into the prepared baking dish.
Spoon half of the taco meat mixture over the spaghetti layer in the baking dish.
Repeat the layers with the remaining spaghetti mixture and taco meat mixture.
Cover the baking dish with foil and bake in the preheated oven for about 20-25 minutes, until heated through and bubbly.
Remove the foil and bake for an additional 5-10 minutes, until the cheese is melted and golden brown.