you should always clear the pending interrupt that cause the interrupt service routine to be run, in the interrupt service routine. Ideally start at the peripheral that caused the interrupt and clear toward the cpu if there are multiple places where it is latched.
not always possible, but a good idea to understand the generation and clearing of the interrupt using polling first because that is way easier, then once all understood then do the last enable to allow the cpu to see the interrupt and call a handler, still debugging required for that but fewer things to derail you at that point.
whether or not leaving the interrupt asserted and returning causes another immediate or one instruction later interrupt depends on the system design, but it can and does happen on some designs. Likewise if there is an additional exception that happened while the logic was switching over to the interrupt or you were handing the interrupt, that might not re-interrupt you, before exiting the interrupt handler you need to poll the peripheral and handle any other events, repeat until there are no more events then exit the handler (for events that share an interrupt line into the cpu).
for a timer which is perhaps what you are asking about. clear the interrupt at the timer and other latches toward the cpu. if the timer requires another action to re-start another time period this would be the time to do that as well. if it automatically keeps going into the next time period and you just need to clear the interrupt to get another, then you do that here in the handler.