NOTE: While I'm no expert in the matter by any means, should you know something else or wish to add to what I wrote, feel free! 
RAM upgrades, that's a question that seems to pop up plenty of times in the community. In the making of this thread, I hope to have an authoritative response to some of the questions regarding RAM upgrades.
The first step would be to assess whether it's actually possible and these are things to take into account:
- The maximum RAM your CPU and chipset support.
Know your CPU, it can be seen at the System Info for example the one in the machine of the following picture is an i7 10510U:

Now you want to check its specifications, Intel lists the maximum supported RAM while for AMD you may need to search WikiChip for example. In this case, we see the following at its Ark page:

Great! It seems the maximum supported memory is 64 GB and supports dual channel (we'll get to that later on, but basically it can access 2 sticks of RAM at the same time). As for the chipset... that's more complicated, not many manufacturers specify the chipset they have used for each machine. There are some programs though, like AIDA64, which are able to show you the maximum amount of memory the chipset supports, and luckily, its trial version will display that information for free:

- Whether the current RAM is soldered onto the motherboard and no socket is provided.
If it is, there's no easy way to upgrade it and you might as well assume you can't for all intents and purposes. There are a couple of ways to know, when buying the PC if it states that the RAM is "on-board" it means it ships with it soldered, but it doesn't tell you if there are sockets you can use to expand on it or not. To know that you have to either open the machine and look for a RAM socket like the one in the picture below, or search online for the insides of your particular model. No socket = no upgrade.

There is no way to know it authoritatively through software. In that particular machine, there's no RAM soldered onto the motherboard and there is only 1 slot, yet programs report 2 slots are available. Because of that, the loss of 1 slot and the chipset limitation, the 64 GB of maximum memory the processor supported already went down to 32 GB for that particular system. It's a pity, but there's nothing we, as users, can do (maybe complain to the manufacturers :P).
Now that we know there's room for improvement (in the first screenshot the laptop showed it had 16 GB),
how do we know what to buy? Well, it depends on what you have already installed.
HWiNFO,
CPU-Z, or
AIDA64 among other programs can shed some light into the matter. With the info we got about the supported memory types from the specifications of the processor we can make informed decisions (right click, open in a new tab for a better view):


What that system has is DDR4-2666, also known as PC4-21300, so out of the 3 types the processor supported know we know we need DDR4-2666 (LPDDR3 fits in a different receptacle and LPDDR4 is soldered onto the board).
Could we get faster memory? Say... 3200 MHz? Sure, but it won't go faster than what the processor supports which is 2666 MHz. It is good because if you can find cheaper sticks with faster clock speeds they are suitable too, and that's because of those timing profiles you see highlighted in the bottom part.
The first D in DDR stands for double, the first line are therefore the timings for the memory running at 2666 MHz. But you can see below timings for 2400, 2133 and 1866 MHz, meaning that the RAM stick the machine has can run at any of those. And if there are more than one module they'd go at the highest common timing supported (assuming they're compatible with each other, more on this later).
So far we know we need DDR4-2666 and a stick of 32 GB as maximum, but let's assume the machine had 2 sockets instead of one; that is, the capability of having 2 RAM sticks.
Could we get any other stick of 16 GB, DDR4-2666, and pair it with the one we have? In short, no.
Of those timings, the first one is called the CAS latency (15 for 2666, the first number in the line). It has to match. In fact, pretty much any timing has to match for the memory to work in dual channel mode (read: faster). If they're different they won't do. Think of it as a rhythm: one person claps once every 2 seconds and another claps every 3, there's no way they
sound in tandem all of the time.
Even then, there can be sub-timing issues or motherboard incompatibilities preventing the system from working in dual channel mode or even booting when both sticks are present,
if at all possible it's recommended to get matched pairs (those sticks that are sold as packs); only then it's guaranteed they can work in X channel (X being dual, quad, etc.). They may still not work with your machine though, which is why it's good to buy from vendors that allow returns or exchanges.
Another good option would be to get the exact same stick of RAM you have installed, buying it second hand. Don't think they're used, when I got that machine I upgraded from the 8 GB it had to 16 GB and I sold the 8 GB part; you can be almost sure things will work. If you want to do that, look for the "Module Part Number" in HWiNFO, for the example we're following that would be "KHX2666C15S4/16G".
What about matching on-board RAM with a stick to work in dual channel mode? Well, same thing, characteristics have to match and some are even more picky on what they want as companion. You could try searching the net for your particular model, there may be someone who has already upgraded and has reported their experience

.
There's another program that can give you more information on the kind of RAM you have installed,
Thaiphoon Burner, and the free version is all you need (you won't be overriding any profiles anytime soon). I mention it because of 2 things, to show you there are even more things that can be the source of incompatibilities, but also some things that can be good as well. Take a look at this screenshot:

See that physical organization? Those 2 ranks cause problems sometimes, there are machines that only like single ranked RAM (uncommon I think?). However, did you notice there are more than one CAS latency supported at 2666 MHz? That's a plus! That means the memory could be happy with another stick that is DDR4 2666 MHz CL16 for example, or CL18; but yep, when it comes to real world matching, aside from the educated guesses we can do thanks to all this data, it boils down to trial and error

.
I hope it helps! If you have any question, don't hesitate to ask!