Welcome to Serebii.net.
In general, build your team with a variety of types covered. For example, you have a Water and a Normal-Flying Type, which is a good start. You might want to diversify and catch an Electric type like Pikachu, a Fire type like Vulpix, a Rock type like Geodude, an Ice type like Lapras (which you get for free in the Silph Co.), a Dragon type like Dratini, or a Psychic type like Abra. Get my drift? You can model your team however you like, and there are lots of Pokemon to choose from that let you diversify. But you don't want to do this randomly. You have a Squirtle, which will hopefully become a Blastoise. He is weak to Grass types so although you could teach him Ice Beam, a Fire type would stand a much better chance against a Grass type like Blastoise would. You can also apply this to your Pidgey. It is weak against Electric types, so you may want to consider a Ground type to cover that weakness. But then, your Fire type is weak against Water types, and Blastoise won't have the best time against them either. So catch a Grass or Electric type to compensate. This is how you end up with a well balanced team.
Another guide I go by for in-game teams is to not have more than one STAB (Same-Type-Attack-Bonus) attack on one Pokemon, or have at most 2. For example, you might teach your Squirtle Surf. Since they're both the same type (Water), you might be happy with this and maybe go with an Ice attack to beat Grass types. What I'm trying to say here in a nutshell, is don't have too many of the same type of attack on your Pokemon. Your Pidgey would be happy with a Flying attack like Aerial Ace, and a Normal attack like Return, since they cover both of his types.
Another one important thing: use Pokemon that you have fun using, and are comfortable with. You don't have to listen solely to others' advice. Use what you like, and that way you can have the most fun playing. I hope this post helped.