Well, there are a thousand different ways you can do these rules.
Personally, I like rewarding owners who make saavy late draft picks and free agency acquisitions by allowing them to keep the players for "cheaper" draft picks next year. However, I believe you have to escalate the cost each year. We allow a player to be kept up to 4 times and the escalation is desinged so that no player can be kept 4 times without costing a 1st round pick at least once.
So, for example a 15th round pick costs you a 10 next year, then a 5, then a 2, and then a 1.
Note: Some keeper leagues don't work this way at all. Some leagues are set up where you just keep your 2 best players (or however many are allowed) then you draft normally with everyone having a pick in each round.
You will want to come up with a keeper value for a free agent acquisition as well. It should probably be at least as cheap, maybe one round more, as the keeper value of the last round picks in your draft. Also, you will want to have rules regarding keeper values for players traded, dropped, and picked up on waivers. Players in our leage retain their keeper value (once established) regardless of what happens to them for the rest of the season. For example, Kevin Jones was a 4th round draft pick last year so he could be kept in 2007 as a 2nd round pick. That value stays with him even though he was injured and ultimately dropped to the free agent pool. If someone picked him up just before the end of the season last year as a flier, it would still cost them a 2nd round pick this year. The same would be true of any player that is traded.
We do allow 1st and 2nd round draft picks to be kept. However, once a player is kept as a 1st round pick, he goes into the draft pool next year. So, the guy who drafted LT gets to keep him one year beyond when he drafted him. To offset this some, you can only keep one of your 1st two picks since both cost you a 1st round pick next year. That way, some of the top talent goes back in every year, but not all.
We allow up to 4 keepers.