Ok. It could be anything.
Modem:
[Assuming you have an ntl or VM branded modem]
On your web browser, go to
http://192.168.100.1/CmOpConfig.asp (default username & password is 'root'
Check you're maximum downstream data rate is: 20480000
If it isn't, you haven't got 20Mbit
Router:
Reset it to the original factory settings.
If this doesn't work, then it may require a phonecall to Virgin Media. There's things they can do at their end to move you to a less busy channel on the UBR which may be the cause of your slow speeds.