When the user uploads an image, WP automatically resizes it to all the sizes that have been registered. Existing images are not resized when the theme is switched. There are filters available to influence the resizing process.
add_image_size a theme defines which image sizes it needs on top of the built in WP image sizes (which themselves can be changed with settings -> media). When an image is uploaded, WP will automatically resize them for all expected sizes at that moment.
When the theme is switched and other sizes are needed, a plugin like Regenerate Thumbnails is needed to go through all uploaded images and resize them to suit the new needs.
There are also plugins that provide various filters to the resizing process, based on the WP Image Editor class.