Both are valid but it depends on the person, and the place. For example the Yo tengo un perro will be really common in Uruguay while Where the use of "YO" is really strong. Tengo un perro will be more used in Argentina, despite that you can't say that is a "regional" difference. As I say both are correct. Pherhaps the main difference comes clear here:
If you ask, "Do you have a dog?"
- Q: ¿Tienes un perro?
- A: Sí, tengo un perro.
In that case ("Yo tengo un perro"), the "yo" would be redundant
If you ask, "Who has a dog?"
- Q: ¿Quién tiene un perro?
- A: Yo tengo un perro.
I hope this makes it clear.