We study a general preferential attachment and Polya's urn model. At each step a new vertex is introduced, which can be connected to at most one existing vertex. If it is disconnected, it becomes a pioneer vertex. Given that it is not disconnected, it joins an existing pioneer vertex with probability proportional to a function of the degree of that vertex. This function is allowed to be vertex-dependent, and is called the reinforcement function. We prove that there can be at most three phases in this model, depending on the behavior of the reinforcement function. Consider the set whose elements are the vertices with cardinality tending a.s. to infinity. We prove that this set either is empty, or it has exactly one element, or it contains all the pioneer vertices. Moreover, we describe the phase transition in the case where the reinforcement function is the same for all vertices. Our results are general, and in particular we are not assuming monotonicity of the reinforcement function. Finally, consider the regime where exactly one vertex has a degree diverging to infinity. We give a lower bound for the probability that a given vertex ends up being the leading one, that is, its degree diverges to infinity. Our proofs rely on a generalization of the Rubin construction given for edge-reinforced random walks, and on a Brownian motion embedding.