Even tho the post is a bit older and there have been awesome replies, allow me to explain the structure a little more:
When you have objects in your Blender file they belong to a certain Scene. Having multiple scenes is like using multiple project files, with the exception, that Scenes are able to interact with each other. You might have seen the word "Scene Collection" in your Outliner, which notes, that the subordinate collections are part of the currently selected Scene data block.
View Layers, formerly Render Layers are a kind of subdivision for a Scene. While the "Render", "World" and "Scene" properties are the same for the entire Scene no matter the view layer, the properties for Collections and View Layers can vary per layer. Therefore additional layers are useful to split up the render process into what is rendered and which passes you can obtain. To combine them later you can use the compositor or export them to use in another software.
The render settings are still given by the Scene and also the Camera is the same for each layer. The mere purpose of extra layers is to split up your render into multiple components to process individually (and often combine again later). A basic example would be separating your Mist and Fog elements (not to get confused with the Mist pass) from your objects, to later add then back in. While it is possible to do alot of these color correction and compositing tweaks beforehand in the shaders, view layers allow tweaking an entire group of things and are especially useful for animation to allow post processing for all the frames and their passes with the given Compositing Node Tree rather than having to edit them together manually later.
However if you want to render multiple parts of a project in the same step, without leaving your single file and going through annoying import and export steps, using multiple Scenes can be extreme powerful. Each of your Scenes has their own Collections, Worlds, Render settings and even Output settings. Also the view layers are unique to each Scene. This can handy when switching between two environments during an animation.
Imagine your character looks through a portal into a totally different dimension, using Scenes makes this transition possible for compositing without additional editing afterwards. While it is possible to get a transition like this with shaders, it offers a sort of isolation from the other environments so you can work on each individually and aren't as prone to issues.
What I recently used two Scenes for is rendering parts of an image as Orthographic while the other used Perspective. Instead of going through the export process and managing two Blender files multiple times for each change. The setup allowed me to make changes and not worry about the end result, as I set it up once and it worked for the entire project.
So, Scenes divide your project into multiple individual Render setups, while view layers divide the scenes to allow editing different components of a render. Compositing in Blender, while not the most advanced compared to other software is super useful for almost all projects, due to this dynamic with having multiple layers to your image.
Hope that gave some more understanding. Thanks for reading