L.S.
At 4 months, it's tricky, because their world will hugely expand in about 2 months when they start to roll over, crawl & scott around. For immediate toys, I'd recommend anything with wheels, lights, sounds that he can turn & reach for, to encourage him to roll over. But for my 2 kids, once they were even a bit mobile, they ditched all their BABY toys & wanted something more interactive & responsive.
Also, sometimes the things that they really enjoy, are NOT the things you spend a bunch of money on. My son at that age always wanted needed 4 things: something soft (like a cuddle toy), something to suck on (like a teether, or rings with textures), something to shake like a jingle bell or a ring of measuring spoons, something to roll (a little soft ball).
Here are the long lasting items we liked best:
For little things:
The O-Ball (it's a ball that has holes all over so babies can grab & throw it), a stack of plastic measuring cups, metal measuring spoons, a soft stuffed animal, a jingle bell, any fun board book, and my son could always be consoled with a kitchen whisk (must be a future chef!)
For big toys: our favorite toy that has lasted forever has been the Leap Frog learn & groove table. You can take the legs off for when your baby is doing tummy time or just starting to sit up. And then put the legs on when he's starting to pull himself up & cruise. My 4 year old played with it until he was about 2 1/2, and my 10 month old started playing with it at about 6 months when she started sitting up. It's $35 on Amazon, and for the amount of use, it's been the best value toy.
The next item that had long-lasting use was our Chicco Play & Ride Train. It has some squeaky things to pull, buttons to push, a little place to hide "cargo". When they start to pull up & try to walk, they can push the train, and when they're bigger, they can ride it. Again, my 4 year old son played with this until he couldn't fit on the seat anymore. And we plan to get one in a month or so for our daughter.