Heat olive oil in a large dutch oven over medium-high heat. Add ground beef, onions, and taco seasoning. Cook for 3-5 minutes, until the beef is browned.
Stir in diced tomatoes and chiles. Add spaghetti and water. Bring to a boil, cover, reduce heat to medium-low, and simmer for 12 minutes, or until pasta is nearly cooked through.
Stir in cubed cream cheese, cover, and simmer for 2 minutes until melted.
Remove the pot from the heat and mix in the shredded cheese until melted.
Serve immediately, garnished with additional shredded cheese and fresh cilantro, if desired.