Heat olive oil in a large oven-safe skillet over medium-high heat.
Add diced potatoes to the skillet. Cook for 8 to 10 minutes, stirring occasionally, until they start to brown and soften slightly.
Push the potatoes to one side of the skillet. Add the ground beef to the empty side and cook until browned. Drain any excess grease.
Stir the taco seasoning mix and water into the ground beef. Bring the mixture to a simmer and cook for 5 minutes, allowing the sauce to thicken slightly.
Stir the potatoes into the meat mixture until combined.
Sprinkle both cheeses evenly over the top of the potato and beef mixture.
Cover the skillet and cook on low heat for 3 to 5 minutes, or until the cheese is fully melted and bubbly.
Remove from heat. Top with sour cream and fresh cilantro before serving directly from the skillet.
Notes
For crispier potatoes, you can bake the diced potatoes separately at 400 degrees F for 15 minutes before adding them to the skillet.
Use pre-shredded potatoes if you want to reduce prep time further.
Substitute ground turkey or chicken for ground beef if preferred.