Bandwidth is currently the limiting factor.
Assuming an average transaction size of around 15 KiB, nodes can handle ~8 tx/s with every Mbit/s connection speed.
There is no real answer to how many transactions per second the network can "theoretically" handle though. A higher transaction rate means higher requirements, whether it's bandwidth, CPU or disk storage. When those requirements go up, certain people will not be able to run a full node any more, and the network becomes less decentralized.
So if the requirements rise faster than technology and infrastructure can keep up, the Monero network will still be able to handle the transactions. However, it will become increasingly centralized, which is a bad thing.
The scaling issue is about keeping the network as centralized as possible, there's no hard limit.