The badge on the calendar app functionality is already in use - as stated above, just like the badge on Mail indicates new mail, the badge on the Calendar app indicates a new event
invitation. However, you need to have a MS Exchange account on your phone to receive invitations in your Calendar app. It may be a shortcoming from your point of view, but for me it's important to know when I have a new or updated calendar event invitation. You can set event alerts (two of them for calendars on the phone) which will show up as a message on your screen.
On 3rd party apps, badges are enabled if the developer has included that feature (some do, some don't), and you have badges enabled in your notification settings.