I think you've both waited a reasonable amount of time that you should know by now if you are ready to commit to each other. At your age, 2-3 years of dating should be enough to figure out whether you've found the person you want to commit to. Of course, there are no absolute time limits, but if one of the relationship partners really wants to get married, dating for any longer than five years without an engagement seems a little ridiculous. Yes, you're still young, but 24 and 25 is certainly not TOO young to get married.
I dated a young man through all of high school and college. He constantly said he was going to propose soon, but he never did. I wish I had been brave enough to break it off earlier when I realized he wasn't yet ready for the kind of commitment that I wanted in a relationship. Instead, I wasted 9 1/2 years of my life waiting for a proposal that never came.
While ultimatums are a bad idea, it's perfectly reasonable to let your boyfriend know what you want in a relationship and let him know that if he doesn't want the same thing, it's time you both go your separate ways, no matter how painful that may be. It's similar to discovering that you want kids and he doesn't, or that your dream is to teach English in China while his is to join the local police department. If two people want vastly different things out of life, it's often better for them to find other people to marry whose goals are more similar to their own.
Say something like, "Marriage is really important to me. I love you, and I'd like to see us getting married within the next couple of years. I need to know if you are at that point as well. If you're not, that's okay, but I need to be with someone who is ready for the same kind of commitment that I'm ready for." It's possible that he is ready to get married, too, and that he is waiting for the next major holiday/anniversary to surprise you with a proposal. If you've had this conversation, though, and have given him several months after that to propose, and he still hasn't -- then it's time to walk away.