Agility is a great confidence booster! So keep that up for sure!
The other way that I boost confidence in the dog is to change the way I behave around the dog. A dog will naturally look for a leader to follow, someone that is take-charge and knows what they are doing. If the dog has found a leader like that, then they will naturally shadow that leader. And if something is disturbing, will look to the leader to determine whether or not they should be scared, defensive, excited, etc.
Essentially, to make your dog bombproof, you have to make yourself bombproof. Be aware of your surroundings, don't react to loud noises or exciting situations, be confident in everything that you do, DO with a purpose. Not only is this a great exercise for your dog, but it is a great exercise of yourself in exploring your own self-confidence. Even if you have low self-confidence, fake it. Behave in the manner that you want your dog to behave. The vast majority of scared or skittish dogs don't have a solid confident leader to follow. They may respect and love the owner, be their best friend, but they don't believe that the owner can take on anything. They may think you are super, but they don't believe that you are Superman. If they see the owner (whom they love and admire) react negatively in a situation (negative being fear, discomfort, anxiety, nervousness) they will think "Well damn! My owner is freaking out at this, so it must be something horrible and dreadful. I better freak out, too." But if the owner is confident and solid, the dog will look to that, think "Well, owner isn't freaking out. Must not be a big deal!"
I like to play "trust games" as well. Get a chair or stool and set it next to the bed or couch. The chair/stool and bed/couch should be about the same height. You sit on the chair and have the dog on the bed. Stretch your legs out and rest them on the bed so that the backs of your knees are at the edge of the bed, there will only be a couple of inches separating the chair and the couch. Get a toy or treat and encourage the dog to walk across your legs and into your lap. (Builds great balance, too. Especially if you have "squishy" legs like I do!

) Once they reach your lap, YAY big praises and cuddles and kisses. Back to the bed and do it again. Once they are comfortable with that distance, back the chair up a bit so that the back of your calves are at the edge of the bed, encourage the dog to walk across your legs again. Build on this until you can sit with just your heels on the bed and the dog will walk across your legs. Be sure to hold your arms out either side and your legs close together to prevent the dog from falling. Once you have mastered that, push the chair back a bit further, sit with your feet on the floor and encourage the dog to jump from bed to lap. Always ending with lots of praise and play games.
Get out your clicker and teach a "touch". Start with a neutral object, coffee table or something similar. Teach the dog to touch the coffee table with their nose or paw, click and treat when they do. Then ask the dog to touch the couch, the fridge, the chair, the garbage can, etc. etc. Have them associate "touch" with anything that you point at. High energy, lots of praise. Then if you ever run into something that the dog is afraid or nervous of, ask them to touch something neutral, then ask them to touch the item they are scared of. Because they now associate the touch game with treats and play time, that will often overcome the fear of the new item.
Or if your dog is very play driven, play with the item they are scared of. For example, when I brought Romeo home he was very scared of flapping garbage bags. I found this out the first time I snapped an empty garbage bag in the air to open it up and put in the bin. So immediately begin playing with the garbage bag. You don't need to engage the dog in the play right off the bat, but leave an open invitation for them to join you. Get on the floor and crumple up the bag, bat it around with your hands. Run up and down the hallway making excited play noises and flapping the bag. Encourage the dog to chase you. Once they are chasing, offer them the bag to play with, exciting wrestle play, fun fun fun. Then tell them they are very good and super smart, and continue with your normal business. Anything can be a temporary toy.
Another key point (I know this is going forever, but just these little things make a huge difference) is to always ensure that the dog enjoys being with you. Never call your dog to you in order to scold them or do something they don't like (like trimming nails or getting a bath). If you call your dog to you, it should always mean good things, whether that be treats, play, cuddles, kisses, toys, games, training, etc. When you do need to do the unpleasant things like nail trims or baths, walk to your dog to get them. Don't ask them to come to you.
I think that is all that I can think of at the moment. Implimenting these changes and using them on a daily basis (don't slip back into bad habits!) will work very well and often very quickly with your average dog. "Special case" dogs may take a bit longer and some more patience. But your "average" pup or dog will come around very quickly. I got Romeo when he was 9 months old. He was very hand shy, nervous around new people or dogs, slight noise phobia and startled by odd things like garbage bags. By the time he was 10.5 months old, he was 100% trustworthy off leash, and regularly training in flyball (lots of noise, running dogs, new people, barking, screaming, etc.), tested herding instinct with sheep at 10.5 months, etc. The change can be very quick and very dramatic.
