On Saturday I wanted to show a mate what I had been working on so I grabbed what I thought was a suitable power supply - I used a mobile phone charger with a USB adaptor as I figured that it would be no different than powering the Mega from a USB port (my phone can also be charged from a computer USB board).
I have just plugged the Mega into my computer and everything is silent - the computer does not recognise the board at all. My sketch still runs so everything else appears fine.
I suspect that something relating to the USB connection has been fried??
Not necessarily. Did your gear work OK on your mate's PC? The phone charger is not such a good way to run an Arduino as it is short of volts, but it shouldn't fry it either. You could be in the position where you haven't uploaded anything of late. An upload should tell you more than just running a sketch. The USB must be kosher to upload, but a dud port doesn't necessarily stop the sketch from running.
I was not running it off a PC on Saturday night - I was just using the phone charger to power the Mega.
Now that it connected to my PC, I cannot upload anything as the computer does not recognise the Mega, and thus does not open a Com port. The USB powers the Mega fine, so I suspect that there is just something wrong with the communications side.
It's odd that a phone charger would do that, although I have been looking at the EEVblog episode about cheap USB chargers and how badly made they are.
It would be interesting to try to measure the output of the phone charger (preferably without plugging it into the Mega) if you have a suitable way of getting at the connections. If it exceeded 5.5V it may account for what you are seeing.
Does your Mega have an ICSP header for the USB chip (adjacent to the USB socket)? If so you could use a second board to see if the USB chip is "alive".
There is an ISCP header near the USB socket but I have not been able to identify which pins to connect too. Using a continuity test I have been able to identify the GND and 5v, but not any of the others.
A close inspection of the ATmel8U2 chip seems to show some physical damage (The ATmel lettering is discoloured - I can upload a photo if required) so I suspect that this chip is fried.
Since you got a response from the main processor you can probably program it via the ICSP interface (even if the USB chip is fried). You can use an Arduino as ISP to do that, or get a dedicated programmer (around $10 on eBay).
I also have a sketch that lets you copy the .hex file (from the compiler) onto an SD card and program using that: