Learning tools are great for children, but there are a few things you can do, without spending any money, that will greatly help your child develop cognitive reasoning abilities.
1. When your child asks a question such as "why is ____?" try to help them arrive at the answer, rather than just giving it to them. If you can walk them through the steps involved, it will build an early foundation of logic.
2. Read to your child frequently. Allow the child to follow along with you in the book while you are reading. Trace your finger along the line as you are reading it so the child knows where you are at. Even before learning the ABC's this can be a good habit.
3. Try to answer your child's questions seriously. Never "dumb it down" for them. If they ask "Why is the sky blue?" then give them a real answer. A great resource to help with this is "Questions That Children Ask, and How to Answer Them" by Dr. Miriam Stoppard.
4. Instead of using cartoons and television for entertainment, play educational games. For a preschool child, anything can be a game if you do it with them. Counting, ABC's, and an old favorite of mine: "Which of these things doesn't belong?" In this game you basically present the child with several objects, or pictures of objects, and allow them to pick which doesn't fit with the other. This is an excellent way to introduce logical reasoning.