I have worked on teams which, while using Scrum, have fallen either side of this opinion: every story must be complete by the end of the sprint.
What is the "official" definition/requirement?
I strive to have every story complete by the end of the sprint and recognise that stories should not be pulled in for idle team members if there is not enough time to complete them, such that a feature complete product is ideal for the sprint review.
However, in the real world it is nearly impossible to ensure that every team member (in my case, developers) is not idle for at least a day, given that our team spans 3 very disparate time zones and there is effectively no single "end of sprint" or "start of sprint" time.