This question already has an answer here:
Is there any software that can determine how much more RAM can still be installed on a computer?
Although Hennes answer is technically correct, there are solutions out there. Crucial.com has a memory advisory tool that can tell you with an extremely high degree of accuracy what your computer can support. I have yet to see it give wrong information. It can do this by scanning your system's hardware, as well as having a very large database of hardware manufacturer specifications. With that information, the tool can tell you how much more RAM can be installed, as well as give you a wide variety of possible configurations on how to achieve that.
No, there is no software which will always be able to tell you that.
The maximum RAM is limited by a few things, such as:
That means that software can check which CPU/chipset you have. If that chipset is limited to (for example) 2 GiB then it can correctly state that 'no more than 2 GiB can be used.
However it can not detect the number of physical connection to the memory. Every connection skipped saves the manufacturer some money, but also halves the maximum addressable memory.
There is a balance here, with the manufacturers trying to make board which will satisfy most of there regular customers, without spending more than needed. This might be well below the maximum that the chipset or the CPU can handle and this is not detectable by software.
In other words, if you want to add a lot* of memory then check the manual.
As to sockets and chips (mainly RAM density on the chips):
* Just what a lot is differs per model and per year. But if you want to use ten times as much as most other new computers then check.