It's dust or other muck on the sensor.
It is most obvious when the background is light and plain. (e.g. cloud or blue sky)
It's also worse with wide angle lenses.
A stopped down aperture (i.e. greater than f8) also makes it worse
If you shoot jpeg, the sharpening algorithm in the camera also makes it worse.
The marks are still there if the background is more cluttered. They are just less obvious.
Solutions
Get the sensor professionally cleaned.
Keep dust out the camera
Use wide apertures if you can.
Use a longer lens (difficult).
Shoot raw - take the marks out in post processing.
Hope this helps