My old Xbox 360 often times (but not always) won't read a disc. If I keep ejecting/inserting it will finally work. Is there anything I can do short of sending it back to the factory? It's not under warranty and the cost to fix is so high I might as well just buy another.
It is possible that the laser is dirty. You have two options - disassemble the device and clean it (please note that this will void any warranties), or purchase a special cleaning disc - these typically are audio CDs and have a tiny little brush attached to one part of the disc. Playing this disc as an audio disc in the console may resolve the issue without needing to clean the laser by hand.
It might also be that the strength of the laser is failing or that the drive is experiencing other issues with calibration. In these cases you would probably be better off sending it in for repairs.
Seeing as it is out of warranty already, you could look at swapping out the drive for another one off eBay. You can check which drive you have using a site like this one, and then look for a similar model on eBay or online somewhere. From there, it's as easy as swapping a drive on a PC.
Make sure your Xbox 360 is clean from dust and other contaminants.
You can take your Xbox 360 apart and clean it yourself, however this will void your warranty! Be careful not to break any of the plastic clips holding it together (use precision screwdrivers to do this and be very gentle).
Once open, disconnect and remove the drive carefully, then the plastic fan guard and use a small, soft paint brush to gently remove any dust or other things. Turn the whole thing upside down and very gently shake to get rid of all contaminants.
Put your Xbox 360 back together. Try it now.