A custom field is a way of storing data against your subscribers.
For example you might want to store a customers Name, Address, Telephone Number, Gender, Date of Birth, Dogs Middle Name, etc.
Custom fields are shared between all groups. So if you create a "First Name" field for example, this field will be available to any subscriber in any group.
Apart from being a handy way to store data about your subscribers, you can also segment your subscribers based on the info you store. For example you might want to send a campaign only to people who have a Birthday in July.
When you first create your account, only one field is automatically added to your account and that is "Email Address" which is always required when adding new subscribers.
If you would like to store more information about your subscribers then you will need to add some custom fields.
To make life a little easier and so you don't have to plan your custom fields out in advance, you can also add custom fields when you are importing Subscribers.