In this paper, we present a vision-based approach to mobile robot localization that integrates an image-retrieval system with Monte Carlo localization. The image-retrieval process is based on features that are invariant with respect to image translations and limited scale. Since it furthermore uses local features, the system is robust against distortion and occlusions, which is especially important in populated environments. To integrate this approach with the sample-based Monte Carlo localization technique, we extract for each image in the database a set of possible viewpoints using a two-dimensional map of the environment. Our technique has been implemented and tested extensively. We present practical experiments illustrating that our approach is able to globally localize a mobile robot, to reliably keep track of the robot's position, and to recover from localization failures. We furthermore present experiments designed to analyze the reliability and robustness of our approach with respect to larger errors in the odometry.