When upgrading the memory of an existing server you should probably start by confirming what memory modules you have installed now and what extra/new/replacement modules are actually supported by the (main board) vendor and BIOS.
To comply with warranty and your hardware support contracts you may be required to buy genuine spare-parts from the vendor, rather than using after market memory modules. Most vendors list certified spare-parts for their hardware and most memory manufacturers also have product selectors directing you to products that should work with your server.
A common pitfall is that older servers don't support new larger capacity memory modules, which based on all their other properties do fit and would be expected to work.
The most common approach is to populate currently empty memory banks, rather than upgrading to larger sized memory modules. NB You can't populate memory banks assigned to empty CPU sockets.
Finding out what you have now
Some of remote management consoles like HP's ILO will display current memory configuration.
dmidecode -t memory command will display the maximum amount of memory the main board supports as well as information about what memory is present in the populated memory banks and which ones are still empty.
For Windows systems WMI should provide similar information with
Mixing memory modules of different sizes
Although it always feels somewhat wrong, I haven't seen any compelling reasons it is bad per se. The Owners manual confirms that it is a supported configuration, provided that all rules regarding memory are complied with.
In multi CPU configurations you need a balanced memory configuration where each CPU has the same amount of memory on the same memory channels: i.e. in a 2 CPU configuration you can have 2 GB in slot A1 and 4 GB in slot A2 as long as that is mirrored in the second CPU,2 GB in slot B1 and 4 Gb in slot B2.
Mixing memory modules of different speeds
You can mix modules of different speeds as long as the main board supports those speeds. The BIOS is supposed to find the lowest common denominator and regulate that all modules run at the same speed. Since typically faster memory is more expensive this seems a small waste of money although it does allow you to cannibalise some older systems to upgrade others.