Why does the zoom sometimes stop at a point?
Explanation (Brief)

Blender's 3D navigation uses a central point to orbit around.

In practice this is good for modeling an object which you rotate about a lot to see from all sides(think of a potter using a wheel).
However this makes it awkward to explore a scene or model an object from the 'inside', for example.

There are some ways to use Blender without this being an annoyance. ... read on!

Explanation (Detailed)

Blenders view is constructed by 3 elements.


location: the point of interest that orbit when rotating the view-port (the center of the screen).
distance: the zoom level (distance from the location).
rotation: value for yaw-pitch-roll (around the location).


linked to API reference.

Typically users don't need to worry about this detail, however zooming will only change the distance which is an offset from location (where 0.0 is zoomed in as far as possible == no offset).

Solutions

Early on using Blender I was quite annoyed by this limitation, of course there are ways to set a new view-center, common way is to select an object and press numpad ., but what if there are no objects where you want to look at? .. or the object is very large? (a terrain mesh for eg). Sometimes I found myself rotating the view 90d, panning, then rotating back - which seemed an unnecessary workaround.

Here are some ways to navigate in large scenes or scenes with no obvious center...


View Dolly: CtrlShift + middle-mouse or Shift++/-works similar to zoom but translates the view center (like panning forward).I think this is the most direct answer to your question, but listing other methods too.
Walk/Fly Mode: ShiftFAs with dolly this can move the view back and fourth (using the mouse wheel), but you can also look around using the mouse and WASD keys, its a mode all on its own and has pros and cons which are better explained elsewhere.
Auto Depth (Interface Preferences): useful in combination with Zoom To Mouse Position, Using these will make sure the distance is always the value under the mouse cursor, this means you have to consider where you click when moving the view but can also be very handy since it gives you a lot more control.If you work with large scenes - like a game level for example, and want to move around a lot, I'd recommend to try these options. See this video for a demo.
Border Zoom: ShiftB: Also sets the center-point when zooming.
Center the view around the mouse cursor:AltFThis will take the position under the cursor and make it your viewpoint center.
Center the view around the 3D cursor AltHome
NDOF (N-Degrees of Freedom), also known as a 3D mouse, hardware you can use to navigate a scene with Blender, See devices made by 3dconnexion. Blender's 3D View supports this, allowing you to explore a scene. Walk/Fly modes also support NDOF devices.(Note, this is not a promotion of 3dconnexion, in fact there are very few companies who make such hardware, So currently Blender only supports 3dconnexion)