I once read somewhere that D&D is "a game where a 2-hour journey takes 5 minutes, and a 5-minute battle takes 2 hours".
Despite this often being true, especially at higher levels when everyone is rolling 5d20s to attack and 30d6 for their damage, there are many measures you can take to get combat running like a well-oiled machine. Here are just a few:
1) Keep visible turn order cards
This is something that Anthony does as a DM, and I really appreciate. Every player and NPC / monster in combat has a folded-over slip of paper with their name on it draped over the DM screen. Turn order moves from left to right (our left, our right), and everyone at the table can easily keep track of when they are about to go next. This reduces the amount of lag time between turns quite substantially, as everyone at the table can begin thinking about their next move during the turn immediately preceding theirs. Which brings me to...
2) Pre-roll your attacks
Unless you are involved in a particularly dynamic combat, it's safe to say you'll be doing a good number of full attack actions over several rounds. If things are lagging, roll a series of attacks while other people are taking their turns, and queue them up for when it is your time to use them. That way, when the DM says it's your turn, you can spend your time describing your action ("I hit a solid strike at a 25 AC, doing 15 points of slashing damage!" or "The sun gets into my eyes, and a roll a 5 on my ranged attack.") rather than spending the same time rolling and doing addition. The only problem with this method is that when the inevitable string of 1's comes up on your queue, you just have to swallow your pride and accept them rather than surreptitiously re-rolling.
3) Use technology
There are many ways to do your combat math. Pencil and paper is the default classical method, but unless you are incredibly quick at math it can become time consuming at high levels. Casting spells is generally more straightforward than physical combat, which ironically means that fighters will need to be doing more math than their more intelligent counterpart, the wizards. If you play with a laptop, space phone, or any other type of computing device I recommend getting a dice roller program. Also, taking the time to make an Excel / Google Docs spreadsheet with your various combat math on it will save oodles of time in the long run.
4) Develop team tactics
With well-defined roles and established combat habits, combat can be a little more predictable and less chaotic. The longer a team of characters (and players) works together, the more this will come into play. Working together in an efficient manner should be its own reward as it will make combat not only faster but easier. Now, all that said it will get pretty boring after a while when every combat involves spending three rounds to debuff the enemies, buff your archer, and then make sure that she can take full attacks every round until the enemies are reduced to a fine, pin-cushioned paste. At that point, it's up to the DM to throw a few curveballs at the party. (Oh look, this stone giant cast "Protection from Arrows" on himself, and your archer is now surrounded by Red Mantis Assassins. Have fun!)
When all else fails, just delay your turn! While it seems anathema to not actually act as quickly and as often as you can, don't forget that combat is fluid. Some DMs take the hard-assed approach and give their players 5 seconds to declare their intent before they are considered as having delayed their turn. In my opinion, it's much better for the player to realize that they are slowing things down and declare a delay themselves.
In the end, no matter what you do combat is going to take a long time, but as long as everyone at the table is having fun, that's all that matters!