Joe's right on, you do not need to be good at a language, but some exposure to a programming language is always a good thing. What you need is a sense of curiosity, attention to detail, tenacity, courage to stand up for what you think is right, humility to admit when your wrong, and a desire to push software to its limits and beyond. There are several other traits which would be an asset to testing like the thirst for knowledge, a strong desire to improve your self and learn new techniques, etc. All of these can help to mold a good tester.
I would say you need a basic understanding of how software works - how variables are declared and used, how functions are shared, etc. This will help you anticipate where problems may occur and anticipate when problems in one location may also appear in another. So, some coding experience is helpful but it's not so important to pick one language over another and it's not critical that you be an "expert", whatever that is.
If you already have a job, start learning whatever languages are in use there. If you don't have a job yet, try to find out what languages are being used by companies you're interested in and pick one of those.