I use CGMiner(unless there's a better one) on an AMD Radeon HD 8570D. it gets 22-23kh/s but most times I see people mentioning their graphics producing multiple megahashes. do I just have the wrong configuration or do I have to buy something more powerful(and expensive)
If you have the HD8570 dedicated card around 86kh/s is what I was getting as well before any tweaks. But it sounds like you have the HD8570D GPU in an APU (Looks like they are in A8-6500 and A8-6600K CPUs) then you will definitely will be getting much lower kh/s than the dedicated card from looking at the specs. Since the GPU in the APU is sharing the system memory you will have to overclock your RAM in your motherboard BIOS settings.
Just in case you are talking about the dedicated card or someone else finds this thread I was able to get 127Kh/s with these settings.
SGminer 4.0.0 settings: "--gpu-platform 0 -d 0 -w 256 -I 16 --lookup-gap 2 --thread-concurrency 3200"
This tweaked OpenCL file got me about 1% more kh/s and works for many cards. There are also others out there to try.
System: Windows 8.1 with AMD 13.9 drivers
GPU Overclock: Core clock from 780mhz to 990mhz Memory clock from 900mhz to 1155mhz
There is a single Radeon 8570 listed at 86 kh/s in this litecoin mining comparison wiki. Something is most likely wrong with your cgminer settings OR your gpu/mem clock speed ratio.
Try other settings in cgminer first. When you find something optimal, try downclocking your GPU in 5 MHz increments until you find the best hashing speed.
Also, don't forget litecoins use the Scrypt hashing algorithm while Bitcoins use the SHA256 algorithm. A decent GPU will net you arround 500-700 KH/s while mining Scrypt cryptocurrencies, but 500-700 MH/s while mining SHA256 currencies.