Both sentences are correct as written. "He is here for 25 days" is not the same as "he has been here (for) 25 days." If I travel to a place with the intention of staying for 25 days, I can say, early in that trip, "I'll be here (for) 25 days," or "I'm here (for) 25 days." I think there is an implied "scheduled to be" between "I'm" and "here."
You could omit "for" in either case, but it's better if you leave it in.