First check that all your settings are correct, that contact syncing is checked on all devices (system preferences > iCloud on a mac and settings > iCloud on a iPhone, iPad or iPod).
Make sure the contacts you are adding are added to your 'iCloud' group and not an 'On My Mac', 'On My Phone' or other non iCloud group (you can do this by checking in groups), non iCloud contacts will not sync.
If you are sure that everything is set up correctly and your contacts are in the iCloud group, you might try unchecking contact syncing in the iCloud settings, restarting your device and then re-enabling contact syncing.
In fact, the missing contacts are all in my On My Mac group. Isn't there a way to push them to the Cloud. Ideally, I'd like to have everything in the Cloud. My understanding was that I should be able to use the Cloud as the "holding place" for everything. If I create a new contact on one of my iOS devices, it goes into the Cloud. If I create a new contact on my iMac, it goes into On My Mac instead of the cloud? This just doesn't make much sense to me. I just think I must have done something wrong in the setup. In iCloud settings on my iMac, I have Mail, Contacts, Calendars and Bookmarks all syncing with the Cloud. Is there something else I should be doing?
You need to move the contacts from your "on my Mac" group to your "iCloud" group on your Mac, you also need to set your default account in your address book preferences to the "iCloud" group.
This user tip might help you understand how accounts work with Address Book.