I have developed server side application to maintain the badge number as increment or decrement after receiving new notification and delete after seeing notification it works fi
It will show until you set it to zero and you can do it with the following code:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
EDIT:
It is more common to set the badge number as you receive the notification, in either application:didReceiveRemoteNotification:
or application:didFinishLaunchingWithOptions:
methods of your UIApplicationDelegate
class.
You can read more about it in the Local and Push Notification Programming Guide