Lots of options
This is one thing that I really focused on improving after my first couple of years teaching (1st-3rd grades) because it drove me crazy! (and the kids who finished faster would get bored, etc.)
First, let me say that I do try to differentiate between students who finish an assignment early because they know the material and tend to work quickly versus students who are trying to finish the assignment to "be done". The ones who I feel are rushing themselves usually have to have their work checked by me (or a parent volunteer or teacher's asst. if I have one in depending on the subject).
I like to give my students lots of options for their "free time" between subjects, but I try to make them all educational.
1) I have a "math bucket" with a variety of flashcards (math facts, telling time, money, etc.), those cards with preprinted problems and open boxes to write in answers, coin manipulatives, geometric boards, blocks, etc. These are things that I have either collected over the years or that come with the math curriculum.
2) Reading is always an option. Depending on how things are going, I will occasionally let students read in pairs during this time. At my first teaching job, my classroom had carpet squares, so the kids could get carpet squares and sit on the floor to read during this kind of time.
3) Individual dry erase boards. The uses for this can be varied - practicing handwriting/cursive, making up math problems, etc.
4) Talking globe. I got this as part of a Christmas wish list 2 years ago. I love it and the kids use it to practice finding states. (We do a postcard exchange so they get some US geography even though knowing states' names is not part of our curriculum yet.)
5) Listening center. I leave the tape of whatever story we last read or are reading so kids can listen to it if they like. (It's good for the story to be one they have already read so that if students join in later, they know what they have missed.)
6) I keep a crate with crossword puzzles, geometric coloring sheets, trivia games, and other "file folder" activities (covering our academic topics) available. I actually bought 2 books with file folder activities that were grade specific that the students really like. I suppliment it with sheets related to seasons or holidays when appropriate. When I taught 1st and 2nd grade, I would have students turn these in and would check them and give the student a sticker. In 3rd grade, I actually keep them in folders for each student and require them to do at least 5 activities from the crate each month. (Most do WAY more than that.)
7) I allow the students to check with me on whether I need help with anything. Most of the students don't do this but it seems like every year there are a few girls who always finish quickly and like nothing better than to help me. They know that there will be times I do not have anything for them to help me with, but I do try to set aside small things for them to do (cutting things out, stapling papers together, erasing the board, etc.) and also occasionally ask them to help specific students who might need a little help with an assignment (after telling them what kind of "help" is appropriate so that they don't just give the answers away).
These are just things I can think of off the top of my head. Hope this helps!