What are "custom ROMs" in relevance to Android?
A custom ROM is basically any ROM (the Android image) that didn't come from the manufacturer of the device.

As for why you'd do this, there are a few reasons


Some manufacturers don't bother providing updates after device release.  Custom ROMs can provide a newer Android version than the manufacturer and thus provide additional features and security updates.
Also, there are various features that some manufacturers don't include, such as 2-way call recording.  Custom ROMs using custom kernels can provide these features.