Hi there, Neil's method of getting the ObjectId is probably optimal if the featureclass is not being edited at the time. If it is you can probably do a search on the IfeatureLayer with a QueryFilter where objectid > theSelectedObjectID, get the first feature in the cursor and use that id.
As far as making the selection, I suggest you use IfeatureSelection.Clear, IFeatureSelection.SelectionSet.Add(ObjectId) and Call IfeatureSelection.ChangeSelection.
if you have no query definition and you have a very large featureclass (hundreds of thousands of records), it might actually be more efficient, to find the objectID from the selection (ISelectionSet.Ids), increment it can call IfeatureClass.GetFeature, trap the exception and keep going until you find a valid feature. Keep in mind error trapping in .Net is usually not efficient and to be avoided. However, this might be faster than running queries on very large tables.