The first thing you want to go is get copies of all the character sheets, and preferably the master copy. You can do this in a couple of ways:
You probably have a player who either sometimes forgets his sheet, or sometimes can't make it to the game. Express some frustration at not having the sheet available all the time. Then suggest that you should keep the sheets between games, since if you forget your notes there's no game anyway. If people protest, you can 'back off' to a position where they have to at least give you up-to-date copies of the sheets each time they make a significant change (at least once a level).
Or, my personal favourite: Offer to produce fancy electronic versions of the character sheets, using the Mad Irishman forms or equivalent. That way, everyone has fully filled-in sheets, everyone uses a standard format, they don't need to worry about adding everything up, and they get a new shiny sheet at every level. The added advantage of this is that you have the master copy on your hard disk.
Once you have the sheets, go through them all with a fine-toothed comb. Find every mistake, omission, and the like, and ask everyone at the table to put them right. This at least brings all the characters into the realm of possibility (and works better if you use point-buy and fixed-hp, since the less randomness there is in character management the closer you get to the 'truth'). Note: don't do this the first week you have the sheets; wait at least until the next time the party levels-up. Otherwise the players will rightly call foul, and demand their sheets back.
The key thus far is that all the players are affected equally. People make mistakes in assigning skill points (in particular) all the time, so it's not unreasonable to point out some "unfortunate mistakes".
All this basically takes care of any stat inflation. It's much harder to casually add modifiers and such like when the DM can check all the characters at every level.
Dealing with a dice rolling cheat is somewhat harder to do in a tactful manner. The first suggestion is the tyr to get everyone in the group using 'standard' polyhedral dice, and using dice with brightly contrasting colours/numbers. That way, ambiguity in the rolls is reduced.
Secondly, keep an eye out for impossible rolls. If a character has a +19 on a roll, he can't get more than 39. When an impossible roll occurs, ask the player to check his math, because "you think he might have miscounted".
This still leaves characters who have an improbable run of luck (no dice roll under 15 for an entire session, or something of that sort). Unfortunately, there's no tactful way to deal with this without requiring that all rolls be verified before they are allowed to stand. Even then, there are ways to throw a die to get a fixed result. However, hopefully, these suggestions will cut out some of the worst instances of cheating.