The problem that you are experiencing is caused by stuck dust on the "low pass filter" (the protective cover that protects the image sensor inside the camera) Unfortunately, automatic sensor cleaning functions, built in to most cameras, are for loose dust and will not remove something like a moisture spot.
As you may have assumed, the reason that it shows up sometimes and not others, is that due to the close proximity to the sensor, its visibility is dependent on the aperture setting of the lens which determines the depth of field.
To be safe, you will need to have it cleaned professionally. While some local shops may provide this service, most will send the camera in . You can find a Canon service center at the link below.
While I do clean my own, just generally using a readily available CCD sensor swab (see link below), I do not normally recommend it to most users since the sensor can be damaged if it is not done with a very light touch and extreme care.
Detailed instructions for a more complete "DIY" cleaning can be found at the following link.
Please keep in mind that my diagnosis & solutions provided are directly dependent on the accuracy of your description of the problem. As with any "do it yourself" fixes, success is a "team effort", since I can't see or touch the camera, and relies on the customer's manual dexterity and ability to follow the instructions well.
If you require additional information, please use the Reply to EXPERT to contact me. Click the ratings only after our exchange is complete and you are satisfied.
If you are satisfied that my answer is accurate or has provided a reasonable alternative solution, please do not forget to rate my answer OK, Good or Excellent.