Preheat oven to 350°F.
Cook spaghetti in boiling water until al dente. Drain and set aside.
In a large skillet, heat olive oil.
Add ground beef and onion; cook until meat is browned and onion is tender.
Stir in garlic salt and taco seasoning. Cook for one minute.
Add fire-roasted tomatoes, tomato sauce, and salsa to the skillet. Stir well.
Combine the spaghetti with the meat sauce. Transfer to a greased 9x13 inch baking dish.
Sprinkle shredded cheeses over the spaghetti mixture.
Bake for 20 minutes or until cheese is melted and bubbly.
Garnish with cilantro and serve with sour cream.