Math is something I really enjoy doing, so I've done a lot of work with that, 
and my mathematical abilities are significantly greater than they ever have 
been.  The complexity of problems I'm able to solve and the speed with which 
I'm able to solve them keeps increasing the more I practice my math skills.  
After a while, I start picking up on little tricks and shortcuts and develop 
more advanced thinking tools, and problems start seeming a lot easier.  Also, 
just doing some problems makes it easier to do similar problems.  
What I'm working on now, with my math, and this can be applied to lots of 
other areas too, is to stop hesitating so much between steps.  I have the 
unfortunate habit of interrupting myself when I am working on a problem and 
pausing frequently.  I want to train myself to just do the problem straight 
through, in one swift, fluid motion.  It is hard for me to break this habit, 
but I am getting better, and I am getting faster at solving problems, as a 
result.
Regarding the second question; yes, some cognitive abilities are harder to 
improve than others.  Generally, when I'm not very good at something and don't 
have much experience using an ability, it is very difficult to improve my 
ability.  But the more I work at it, the easier it gets to improve my ability 
in that area.  From watching myself, it seems like learning a new ability is 
very much about creating an internal language that is appropriate for that 
ability.  At first it takes a lot of experience to even find general 
principles which are accurate, but once those are noticed, they become symbols 
and it becomes easier to think about an analyze the ability.  As more 
experience is gained, my internal vocabulary regarding that area of ability 
continues to grow and my internal dialogue becomes more and more complex in 
that area and it builds on itself faster.  Also, I start seeing relationships 
between what I am learning in one area and what I have learned in another 
area, and I can transfer the old knowledge to the new area.  By the way, the 
internal language I develop when I learn new things is very different (at 
least superficially) to spoken language; there are no sounds to represent the 
symbols, so they are not anything I can communicate easily to other people, 
but I know what I mean when I think them.
It seems to me that every cognitive ability can be improved significantly with 
practice.  The level of difficulty seems to depend on how familiar one is with 
the ability and with how strongly one is motivated to improve it.  Also, it 
depends on how appropriately one goes about improving the particular ability; 
each one requires a different approach to improve.
 - David Musick
 -- Learn to look at the world as though you are an alien, seeing everything 
for the first time. --