in addition to great points above, i want o add few things, which may or may not be mentioned already:
-making sure all items have successors and predecessors
-durations look reasonable
-if there are items with unusually high slack time, something may be missing in their link logic
-checking the baseline, current date and % complete values vs current information
-schedule check must be done by someone who understands the project well. if you employ anyone for technical schedule review, who is not knowledgeable about the project itself, you will not get the best results. as an example. a certain type of glass partition wall may be built on a tile floor or a carpeted floor. if the schedule given to you says the predecessor is tile, but the wall is built on carpeted floor, only a scheduler who looked at the drawings and knows the project may catch this. or for instance, it may give a FS relation for starting of taping, after gypsum board, which is seems fine. but if your floor is big enough, you may always have lead time.
-go through predecessors and successors of each item
-look at the schedule in general and make sanity check about the timing of items in your mind
-critical path should be checked and any items that may seem out of place must be looked at in greater detail. for instance, in a schedule i checked, painting submittals seemd to be on critical path which did not make sense. upon closer look, i saw that they had "start as late as possible" constraint, by mistake.